typing, reactions
This commit is contained in:
		
							parent
							
								
									20778e93ca
								
							
						
					
					
						commit
						3f6a557e05
					
				
					 5 changed files with 65 additions and 1 deletions
				
			
		| 
						 | 
					@ -68,6 +68,8 @@ func SendMode() {
 | 
				
			||||||
    prompt = ansi.Color(prompt, "cyan+b")
 | 
					    prompt = ansi.Color(prompt, "cyan+b")
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  client.Typing(channel.ID)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  lib.MakePrompt(prompt, true, func(input string, interrupt bool) {
 | 
					  lib.MakePrompt(prompt, true, func(input string, interrupt bool) {
 | 
				
			||||||
    if input == "" {
 | 
					    if input == "" {
 | 
				
			||||||
      if interrupt {
 | 
					      if interrupt {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,5 +8,6 @@ func Setup(session *ningen.State) {
 | 
				
			||||||
  session.PreHandler.AddHandler(Ready)
 | 
					  session.PreHandler.AddHandler(Ready)
 | 
				
			||||||
  session.PreHandler.AddHandler(MessageCreate)
 | 
					  session.PreHandler.AddHandler(MessageCreate)
 | 
				
			||||||
  session.PreHandler.AddHandler(MessageUpdate)
 | 
					  session.PreHandler.AddHandler(MessageUpdate)
 | 
				
			||||||
 | 
					  session.PreHandler.AddHandler(ReactionAdd)
 | 
				
			||||||
  SetupClock()
 | 
					  SetupClock()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										56
									
								
								events/reactions.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								events/reactions.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,56 @@
 | 
				
			||||||
 | 
					package events
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/Cynosphere/comcord/lib"
 | 
				
			||||||
 | 
						"github.com/Cynosphere/comcord/state"
 | 
				
			||||||
 | 
						"github.com/diamondburned/arikawa/v3/discord"
 | 
				
			||||||
 | 
						"github.com/diamondburned/arikawa/v3/gateway"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func ReactionAdd(event *gateway.MessageReactionAddEvent) {
 | 
				
			||||||
 | 
					  client := state.GetClient()
 | 
				
			||||||
 | 
					  currentChannel := state.GetCurrentChannel()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if event.ChannelID.String() != currentChannel {
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  emote := event.Emoji.Name
 | 
				
			||||||
 | 
					  if event.Emoji.IsCustom() {
 | 
				
			||||||
 | 
					    emote = ":" + emote + ":"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  now := time.Now()
 | 
				
			||||||
 | 
					  nowSnowflake := discord.NewSnowflake(now)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  message, err := client.MessageStore.Message(event.ChannelID, event.MessageID)
 | 
				
			||||||
 | 
					  if err != nil {
 | 
				
			||||||
 | 
					    message, err = client.Message(event.ChannelID, event.MessageID)
 | 
				
			||||||
 | 
					    if err != nil {
 | 
				
			||||||
 | 
					      return
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg := discord.Message{
 | 
				
			||||||
 | 
					    Content: fmt.Sprintf("*reacted with %s*", emote),
 | 
				
			||||||
 | 
					    Author: event.Member.User,
 | 
				
			||||||
 | 
					    ChannelID: event.ChannelID,
 | 
				
			||||||
 | 
					    GuildID: event.GuildID,
 | 
				
			||||||
 | 
					    ID: discord.MessageID(nowSnowflake),
 | 
				
			||||||
 | 
					    ReferencedMessage: message,
 | 
				
			||||||
 | 
					    Type: discord.InlinedReplyMessage,
 | 
				
			||||||
 | 
					    Timestamp: discord.Timestamp(now),
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if state.IsInPrompt() {
 | 
				
			||||||
 | 
					    state.AddMessageToQueue(msg)
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    lines := lib.ProcessMessage(msg, lib.MessageOptions{NoColor: state.HasNoColor()})
 | 
				
			||||||
 | 
					    for _, line := range lines {
 | 
				
			||||||
 | 
					      fmt.Print(line)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -301,7 +301,6 @@ func FormatMessage(options MessageOptions) []string {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    content := options.Content
 | 
					    content := options.Content
 | 
				
			||||||
    content = ReplaceMarkdown(content, options.NoColor)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if options.IsDM {
 | 
					    if options.IsDM {
 | 
				
			||||||
      name := fmt.Sprintf("*%s*", options.Name)
 | 
					      name := fmt.Sprintf("*%s*", options.Name)
 | 
				
			||||||
| 
						 | 
					@ -309,6 +308,8 @@ func FormatMessage(options MessageOptions) []string {
 | 
				
			||||||
        name = ansi.Color(name, "red+b")
 | 
					        name = ansi.Color(name, "red+b")
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      content = ReplaceMarkdown(content, options.NoColor)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      lines = append(lines, fmt.Sprintf("%s %s\x07\n\r", name, content))
 | 
					      lines = append(lines, fmt.Sprintf("%s %s\x07\n\r", name, content))
 | 
				
			||||||
    } else if utf8.RuneCountInString(content) > 1 &&
 | 
					    } else if utf8.RuneCountInString(content) > 1 &&
 | 
				
			||||||
    (strings.HasPrefix(content, "*") && strings.HasSuffix(content, "*") && !strings.HasPrefix(content, "**") && !strings.HasSuffix(content, "**")) ||
 | 
					    (strings.HasPrefix(content, "*") && strings.HasSuffix(content, "*") && !strings.HasPrefix(content, "**") && !strings.HasSuffix(content, "**")) ||
 | 
				
			||||||
| 
						 | 
					@ -353,6 +354,8 @@ func FormatMessage(options MessageOptions) []string {
 | 
				
			||||||
        nameColor = "yellow+b"
 | 
					        nameColor = "yellow+b"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      content = ReplaceMarkdown(content, options.NoColor)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      name := fmt.Sprintf("[%s]", options.Name)
 | 
					      name := fmt.Sprintf("[%s]", options.Name)
 | 
				
			||||||
      if !options.NoColor {
 | 
					      if !options.NoColor {
 | 
				
			||||||
        name = ansi.Color(name, nameColor)
 | 
					        name = ansi.Color(name, nameColor)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								main.go
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								main.go
									
										
									
									
									
								
							| 
						 | 
					@ -128,7 +128,9 @@ func main() {
 | 
				
			||||||
  client.AddIntents(gateway.IntentGuildPresences)
 | 
					  client.AddIntents(gateway.IntentGuildPresences)
 | 
				
			||||||
  client.AddIntents(gateway.IntentGuildMembers)
 | 
					  client.AddIntents(gateway.IntentGuildMembers)
 | 
				
			||||||
  client.AddIntents(gateway.IntentGuildMessages)
 | 
					  client.AddIntents(gateway.IntentGuildMessages)
 | 
				
			||||||
 | 
					  client.AddIntents(gateway.IntentGuildMessageReactions)
 | 
				
			||||||
  client.AddIntents(gateway.IntentDirectMessages)
 | 
					  client.AddIntents(gateway.IntentDirectMessages)
 | 
				
			||||||
 | 
					  client.AddIntents(gateway.IntentDirectMessageReactions)
 | 
				
			||||||
  client.AddIntents(gateway.IntentMessageContent)
 | 
					  client.AddIntents(gateway.IntentMessageContent)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  state.Setup(config, client)
 | 
					  state.Setup(config, client)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue