package bot import ( "fmt" "log" "reflect" "strings" "git.lalonde.me/matth/AltVRBot/pkg/utils" ) type msgMode uint const ( msgModeNone = iota msgModeNormal msgModeRude msgModeFlirty ) const ( msgModeNormalString = "normal" msgModeRudeString = "rude" msgModeFlirtyString = "flirty" ) type msgMap map[string]string var ( commandFormats = map[string]string{ "auser": " [Discord Emoji]", "aemoji": " ", "msg": " ...", "accept": "(As reply) [Discord Emoji]", "deny": "(As reply)", "status": "[Discord Mention...]", } msgStrings = map[msgMode]msgMap{ msgModeNormal: { "online_welcome": "Hello, AltVRBot online and here to serve!", "all_done": "All done!", "unauthorized_user": "Sorry, you are not authorized to do this!", "invalid_command": "Invalid command format!", "unknown_command": "Uknown command, try `help` to display the available command.", "unknown_error": "I couldn't not process your request due to an unknown error!", "auser_unknown_friend": "I don't know about this user, are you sure they are one of my friends and the username is correct?", "auser_known_user": "I already know about this user!", "aemoji_unknown_user": "I don't know about this user, try to associate it first!", "msg_unknown_sender": "I don't know you! You must be associated first!", "msg_unknown_receipient": "I don't know about <@!%s>! They must be associated first!", "msg_invalid_receipient": "I can't message this user because it probably is myself!", "msg_all_done_truncated": "All done, however your message was too long and truncated!", "new_friendship_requested": "I just heard that %s would like to become friends, should I accept?", "accept_unknown_reference": "Unknown reference, are you sure you are replying to the right message? Perhaps the request was withdrawn!", "no_online_users": "Seems like no one is online, how lonely!", "no_online_requested_users": "These people aren't online right now, sorry!", }, msgModeRude: { "online_welcome": "Ah fuck, back to work already? Well message me, maybe I'll help you anyway!", "all_done": "Alright alright, stop bugging me already, I got it done for you, you fuck!", "unauthorized_user": "Fartface, who the fuck do you think you are?!? You're not allowed to do that you lowlife!", "invalid_command": "You drunk or something?", "unknown_command": "I'd do that for you, but I won't because: _BOFH_", "unknown_error": "An unknown error occured, probably because: _BOFH_", "auser_unknown_friend": "You dimwit, you should know I don't know who this idiot is. Do I really want them to be my friend? I don't know, but maybe they do!", "auser_known_user": "Fuckwad, I already know about this asshole!", "aemoji_unknown_user": "Who the fuck is that? Maybe try to tell me first you airhead!", "msg_unknown_sender": "Never heard of you chucklefuck! You even registered?", "msg_unknown_receipient": "I don't know about this chickenfucker named <@!%s>! They must be associated first!", "msg_invalid_receipient": "Seems obvious, but I'm gonna explain it for you half brained: I can't message myself!", "msg_all_done_truncated": "Ok ok I did it you shitstick, but you're a verbose fuck so I had to cut your message off a bit!", "new_friendship_requested": "Have you heard about this dipshit named %s, they think they're cool enough, ha! Should we let that numskull in?", "accept_unknown_reference": "Numnuts, I don't know what you're talking about! That user might have been too cool for you, or you're just fucking confused!", "no_online_users": "Everyone else has better things to do than talk you, loser!", "no_online_requested_users": "Looks like these fucks have better things to do than talk to you, loser!", }, msgModeFlirty: { "online_welcome": "Hi there beautiful people, it'll be my delight to serve you!", "all_done": "I did it for you, sweetie!", "unauthorized_user": "I wished I could let you do that, but sadly even your good looks aren't enough to allow me!", "invalid_command": "Love, your beauty is blinding me and I don't understand what you mean!", "unknown_command": "Sugar plum, I love you, but I don't know what it is you want help with!", "unknown_error": "We'd all love to see that happen, but the stars weren't aligned today, something unexpected happened", "auser_unknown_friend": "I've never heard of this hotie before, would you make sure they have befriended me and the username is correct?", "auser_known_user": "Bae, I already know this person, we were all in that cuddle puddle together the other night!", "aemoji_unknown_user": "Sweetiepie, I don't know them, maybe you could introduce us over a glass of wine and some candles?", "msg_unknown_sender": "Honey, I've never met you before, invite me on a date before we get cozy!", "msg_unknown_receipient": "I've never heard of <@!%s>, but they sure do sound sexy! Maybe you could tell me more about them?", "msg_invalid_receipient": "I'd love to write to this lovely person, but they aren't in my rolodex yet!", "msg_all_done_truncated": "I did it for you sweetie, however your passion was too great and I had to truncate your message!", "new_friendship_requested": "Looks like %s would like to get cozy, should we let them in the hot tub?", "accept_unknown_reference": "As sexy as you are, I still can't find a reference to this request. Perhaps it was withdrawn!", "no_online_users": "I'm sory sweetheart, no one's online, but I'll always be there for you!", "no_online_requested_users": "I'm sory sweetheart, these beautiful people arent online, but I'll always be there for you!", }, } ) func (b *Type) getMessageString(msgID string, params ...interface{}) string { mode := b.msgMode p := params if len(p) >= 1 { if reflect.TypeOf(p[0]) == reflect.TypeOf(User{}) { u := p[0].(User) if u.MsgMode != msgModeNone { mode = u.MsgMode } p = p[1:] } } if mode == msgModeNone { mode = msgModeNormal } if _, ok := msgStrings[mode][msgID]; !ok { mode = msgModeNormal } if mode != msgModeNormal && msgStrings[mode][msgID] == "" { mode = msgModeNormal } if val, ok := msgStrings[mode][msgID]; ok { if strings.Contains(val, "_BOFH_") { val = strings.ReplaceAll(val, "_BOFH_", utils.GetBOFHExcuse()) } return fmt.Sprintf(val, p...) } log.Printf("Trying to fetch unknown message with key: %s\n", msgID) return "Unknown message???" }