|
|
|
|
@ -2,10 +2,18 @@ package exts
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/dustinpianalto/disgoman"
|
|
|
|
|
"github.com/dustinpianalto/goff"
|
|
|
|
|
"github.com/dustinpianalto/goff/internal/exts/fun"
|
|
|
|
|
"github.com/dustinpianalto/goff/internal/exts/guild_management"
|
|
|
|
|
"github.com/dustinpianalto/goff/internal/exts/roles"
|
|
|
|
|
"github.com/dustinpianalto/goff/internal/exts/tags"
|
|
|
|
|
"github.com/dustinpianalto/goff/internal/exts/tasks"
|
|
|
|
|
"github.com/dustinpianalto/goff/internal/exts/user_management"
|
|
|
|
|
"github.com/dustinpianalto/goff/internal/exts/utils"
|
|
|
|
|
|
|
|
|
|
"github.com/dustinpianalto/goff/internal/exts/p_interpreter"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func AddCommandHandlers(h *goff.CommandManager) {
|
|
|
|
|
func AddCommandHandlers(h *disgoman.CommandManager) {
|
|
|
|
|
// Arguments:
|
|
|
|
|
// name - command name - string
|
|
|
|
|
// desc - command description - string
|
|
|
|
|
@ -14,276 +22,35 @@ func AddCommandHandlers(h *goff.CommandManager) {
|
|
|
|
|
// perms - permissisions required - anpan.Permission (int)
|
|
|
|
|
// type - command type, sets where the command is available
|
|
|
|
|
// run - function to run - func(anpan.Context, []string) / CommandRunFunc
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "ping",
|
|
|
|
|
Aliases: []string{" "},
|
|
|
|
|
Description: "Check the bot's ping",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: pingCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "say",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Repeat a message",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
SanitizeEveryone: true,
|
|
|
|
|
Invoke: sayCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "user",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Get user info",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: userCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "git",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Show my github link",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: gitCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "tag",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Get a tag",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: tagCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "addtag",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Add a tag",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
SanitizeEveryone: true,
|
|
|
|
|
Invoke: addTagCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "invite",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Get the invite link for this bot or others",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: inviteCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "P",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Interpret a P\" program and return the results",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: pCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "set-logging-channel",
|
|
|
|
|
Aliases: []string{"slc"},
|
|
|
|
|
Description: "Set the channel logging messages will be sent to.",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: loggingChannel,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "get-logging-channel",
|
|
|
|
|
Aliases: []string{"glc"},
|
|
|
|
|
Description: "Gets the channel logging messages will be sent to.",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: getLoggingChannel,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "set-welcome-channel",
|
|
|
|
|
Aliases: []string{"swc"},
|
|
|
|
|
Description: "Set the channel welcome messages will be sent to.",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: welcomeChannel,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "get-welcome-channel",
|
|
|
|
|
Aliases: []string{"gwc"},
|
|
|
|
|
Description: "Gets the channel welcome messages will be sent to.",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: getWelcomeChannel,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "kick",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Kicks the given user with the given reason",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionKickMembers,
|
|
|
|
|
Invoke: kickUserCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "addGuild",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Adds the current guild to the database",
|
|
|
|
|
OwnerOnly: true,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: addGuildCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "ban",
|
|
|
|
|
Aliases: []string{"ban-no-delete"},
|
|
|
|
|
Description: "Bans the given user with the given reason",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionBanMembers,
|
|
|
|
|
Invoke: banUserCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "unban",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Unbans the given user",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionBanMembers,
|
|
|
|
|
Invoke: unbanUserCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "remind",
|
|
|
|
|
Aliases: nil,
|
|
|
|
|
Description: "Remind me at a later time",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: addReminderCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "encode",
|
|
|
|
|
Aliases: []string{"e"},
|
|
|
|
|
Description: "Encode 2 numbers",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: interleave,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "decode",
|
|
|
|
|
Aliases: []string{"d"},
|
|
|
|
|
Description: "Decode 1 number into 2",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: deinterleave,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "set-puzzle-channel",
|
|
|
|
|
Aliases: []string{"spc"},
|
|
|
|
|
Description: "Set the channel puzzle messages will be sent to.",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: puzzleChannel,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "get-puzzle-channel",
|
|
|
|
|
Aliases: []string{"gpc"},
|
|
|
|
|
Description: "Gets the channel puzzle messages will be sent to.",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: getPuzzleChannel,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "set-puzzle-role",
|
|
|
|
|
Aliases: []string{"spr"},
|
|
|
|
|
Description: "Set the role to be pinged when there is a new puzzle",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: puzzleRole,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "get-puzzle-role",
|
|
|
|
|
Aliases: []string{"gpr"},
|
|
|
|
|
Description: "Get the role that will be pinged when there is a new puzzle",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: getPuzzleRole,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "RPN",
|
|
|
|
|
Aliases: []string{"rpn"},
|
|
|
|
|
Description: "Convert infix to rpn",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: generateRPNCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "ParseRPN",
|
|
|
|
|
Aliases: []string{"PRPN", "prpn"},
|
|
|
|
|
Description: "Parse RPN string and return the result",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: parseRPNCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "solve",
|
|
|
|
|
Aliases: []string{"math", "infix"},
|
|
|
|
|
Description: "Solve infix equation and return the result",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: solveCommand,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "make-role-self-assignable",
|
|
|
|
|
Aliases: []string{"makesar"},
|
|
|
|
|
Description: "Makes the passed in role self assignable by anyone",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: makeRoleSelfAssignable,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "remove-self-assignable-role",
|
|
|
|
|
Aliases: []string{"removesar"},
|
|
|
|
|
Description: "Makes a role that was previously self assignable not so",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: disgoman.PermissionManageServer,
|
|
|
|
|
Invoke: removeSelfAssignableRole,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "giverole",
|
|
|
|
|
Aliases: []string{"iwant", "givetome"},
|
|
|
|
|
Description: "Assigns a person the passed in role if it is self assignable",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: selfAssignRole,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(&disgoman.Command{
|
|
|
|
|
Name: "removerole",
|
|
|
|
|
Aliases: []string{"idon'twant"},
|
|
|
|
|
Description: "Removes a role from a person if the role is self assignable",
|
|
|
|
|
OwnerOnly: false,
|
|
|
|
|
Hidden: false,
|
|
|
|
|
RequiredPermissions: 0,
|
|
|
|
|
Invoke: unAssignRole,
|
|
|
|
|
})
|
|
|
|
|
_ = h.AddCommand(utils.UserCommand)
|
|
|
|
|
_ = h.AddCommand(utils.SayCommand)
|
|
|
|
|
_ = h.AddCommand(utils.GitCommand)
|
|
|
|
|
_ = h.AddCommand(utils.InviteCommand)
|
|
|
|
|
_ = h.AddCommand(utils.PingCommand)
|
|
|
|
|
_ = h.AddCommand(tasks.AddReminderCommand)
|
|
|
|
|
_ = h.AddCommand(tags.AddTagCommand)
|
|
|
|
|
_ = h.AddCommand(tags.TagCommand)
|
|
|
|
|
_ = h.AddCommand(roles.MakeRoleSelfAssignableCommand)
|
|
|
|
|
_ = h.AddCommand(roles.RemoveSelfAssignableCommand)
|
|
|
|
|
_ = h.AddCommand(roles.SelfAssignRoleCommand)
|
|
|
|
|
_ = h.AddCommand(roles.UnAssignRoleCommand)
|
|
|
|
|
_ = h.AddCommand(p_interpreter.PCommand)
|
|
|
|
|
_ = h.AddCommand(fun.InterleaveCommand)
|
|
|
|
|
_ = h.AddCommand(fun.DeinterleaveCommand)
|
|
|
|
|
_ = h.AddCommand(fun.GenerateRPNCommand)
|
|
|
|
|
_ = h.AddCommand(fun.ParseRPNCommand)
|
|
|
|
|
_ = h.AddCommand(fun.SolveCommand)
|
|
|
|
|
_ = h.AddCommand(user_management.KickUserCommand)
|
|
|
|
|
_ = h.AddCommand(user_management.BanUserCommand)
|
|
|
|
|
_ = h.AddCommand(user_management.UnbanUserCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.SetLoggingChannelCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.GetLoggingChannelCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.SetWelcomeChannelCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.GetWelcomeChannelCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.AddGuildCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.SetPuzzleChannelCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.GetPuzzleChannelCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.SetPuzzleRoleCommand)
|
|
|
|
|
_ = h.AddCommand(guild_management.GetPuzzleRoleCommand)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|