// import Foundation // #if canImport(FoundationNetworking) // import FoundationNetworking // #endif // import DiscordBM // // struct MessageHandler { // let ctx: Gateway.MessageCreate // let client: any DiscordClient // // static let prefix = ":" // static let zundaGifData = try? Data(contentsOf: URL(filePath: "resources/media/zundamone.gif")) // // func handle() async throws { // guard !(ctx.author?.bot ?? false) else { return } // if (ctx.content.hasPrefix(MessageHandler.prefix)) { // let split = ctx.content.split(separator: " ") // let command = split.first?.trimmingPrefix(MessageHandler.prefix) // let args = split[1...] // // switch command { // case "wow": try await handleWow(args) // case "domath": try await Wolfram.handleMath(args, client: client, ctx: ctx) // case "hug": try await Actions.hug(args, client: client, ctx: ctx) // case "pat": try await Actions.pat(args, client: client, ctx: ctx) // case "pet": try await Actions.pat(args, client: client, ctx: ctx) // default: break // } // } else if ctx.mentions.contains(where: { $0.id == Zundamon.ownID }) { // if ctx.content // .replacingOccurrences(of: "<@\(Zundamon.ownID!.rawValue)>", with: "") // .trimmingCharacters(in: .whitespacesAndNewlines) // .count == 0, // let zundaGif = MessageHandler.zundaGifData // { // try await client.createMessage( // channelId: ctx.channel_id, // payload: .init( // message_reference: .init( // type: .default, // message_id: ctx.id, // channel_id: ctx.channel_id, // guild_id: ctx.guild_id, // ), // files: [.init(data: .init(data: zundaGif), filename: "zundamone.gif")], // attachments: [.init(index: 0, filename: "zundamone.gif")], // ) // ).guardSuccess() // } else { // try await handle8Ball() // } // } // } // // static let ballResponses = [ // "It is certain.", // "It is decidedly so.", // "Without a doubt.", // "Yes – definitely.", // "You may rely on it.", // "As I see it, yes.", // "Most likely.", // "Outlook good.", // "Yes.", // "Signs point to yes.", // "Reply hazy, try again.", // "Ask again later.", // "Better not tell you now.", // "Cannot predict now.", // "Concentrate and ask again.", // "Don’t count on it.", // "My reply is no.", // "My sources say no.", // "Outlook not so good.", // "Very doubtful.", // "Ui beam", // "We are Shigure Ui", // "We are Shigure Ux", // ] // func handle8Ball() async throws { // try await client.createMessage( // channelId: ctx.channel_id, // payload: .init( // content: MessageHandler.ballResponses.randomElement(), // message_reference: .init( // type: .default, // message_id: ctx.id, // channel_id: ctx.channel_id, // guild_id: ctx.guild_id, // ), // ) // ).guardSuccess() // } // // static let wows = [ // "<:wow:1477062414913634334>", // "<:wow2:1477062432357875948>", // "<:wow4:1477062471746588713>", // "<:wow5:1477062452804849845>" // ] // func handleWow(_ args: ArraySlice) async throws { // try await client.createMessage( // channelId: ctx.channel_id, // payload: .init( // content: MessageHandler.wows.randomElement(), // message_reference: .init( // type: .default, // message_id: ctx.id, // channel_id: ctx.channel_id, // guild_id: ctx.guild_id, // ), // ) // ).guardSuccess() // } // // }