diff --git a/src/nimcord/client.nim b/src/nimcord/client.nim index beffc9e..4d18257 100644 --- a/src/nimcord/client.nim +++ b/src/nimcord/client.nim @@ -189,7 +189,7 @@ proc updateClientPresence*(client: DiscordClient, presence: Presence) {.async.} await client.sendGatewayRequest(jsonPayload) -proc newDiscordClient(tkn: string): DiscordClient = +proc newDiscordClient*(tkn: string): DiscordClient = ## Create a DiscordClient using a token. ## ## Sets globalDiscordClient to the newly created client. @@ -198,111 +198,4 @@ proc newDiscordClient(tkn: string): DiscordClient = var cac: Cache new(cac) - result = DiscordClient(token: tkn, cache: cac, reconnecting: false) - -var tokenStream = newFileStream("token.txt", fmRead) -var tkn: string -if (not isNil(tokenStream)): - discard tokenStream.readLine(tkn) - echo "Read token from the file: ", tkn - - tokenStream.close() - -var bot = newDiscordClient(tkn) - -registerEventListener(EventType.evtReady, proc(bEvt: BaseEvent) = - let event = ReadyEvent(bEvt) - - echo "Ready! (v", 0, ".", 0, ".", 1, ")" - echo "Logged in as: ", bot.clientUser.username, "#", bot.clientUser.discriminator - echo "ID: ", bot.clientUser.id - echo "--------------------" - - let presence = newPresence("with Nimcord", activityTypeGame, clientStatusIdle, false) - asyncCheck event.client.updateClientPresence(presence) -) - -registerEventListener(EventType.evtMessageCreate, proc(bEvt: BaseEvent) = - let event = MessageCreateEvent(bEvt) - - if (event.message.content == "?ping"): - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - discard channel.sendMessage("PONG") - elif (event.message.content.startsWith("?modifyChannelTopic")): - let modifyTopic = event.message.content.substr(20) - - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - discard channel.sendMessage("Modifing Channel!") - discard channel.modifyChannel(ChannelFields(topic: some(modifyTopic))) - elif (event.message.content.startsWith("?deleteChannel")): - let channelID = getIDFromJson(event.message.content.substr(15)) - var channel: Channel = event.client.cache.getChannel(channelID) - - if (channel != nil): - discard channel.sendMessage("Deleting Channel!") - discard channel.deleteChannel() - discard channel.sendMessage("Deleted Channel!") - elif (event.message.content.startsWith("?getMessages")): - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - discard channel.getMessages(MessagesGetRequest(limit: some(15), before: some(event.message.id))) - elif (event.message.content.startsWith("?bulkDeleteMessages")): - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - var amount: int = 25 - if (event.message.content.len > 19): - amount = parseIntEasy(event.message.content.substr(20)) - let messages = channel.getMessages(MessagesGetRequest(limit: some(amount), before: some(event.message.id))) - discard channel.bulkDeleteMessages(messages) - elif (event.message.content.startsWith("?reactToMessage")): - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - let emojis = @[newEmoji("⏮️"), newEmoji("⬅️"), newEmoji("⏹️"), newEmoji("➡️"), newEmoji("⏭️")] - for emoji in emojis: - discard event.message.addReaction(emoji) - elif (event.message.content.startsWith("?testEmbed")): - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - var embed = Embed() - embed.setTitle("This embed is being sent from Nimcord!") - embed.setDescription("Nimcord was developed in about a week of actual work so there will likely be issues.") - embed.addField("Title", "value") - embed.addField("Inline-0", "This is an inline field 0", true) - embed.addField("Inline-1", "This is an inline field 1", true) - embed.setColor(0xffb900) - discard channel.sendMessage("", false, embed) - elif (event.message.content.startsWith("?sendFile")): - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - let filePath = event.message.content.substr(10) - - let splitFile = splitFile(filePath) - let fileName = splitFile.name & splitFile.ext - - let file = DiscordFile(filePath: filePath, fileName: fileName) - discard channel.sendMessage("", false, nil, @[file]) - elif (event.message.content.startsWith("?sendImage")): - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - let filePath = event.message.content.substr(11) - - let splitFile = splitFile(filePath) - let fileName = splitFile.name & splitFile.ext - - let file = DiscordFile(filePath: filePath, fileName: fileName) - - var embed = Embed() - embed.setTitle("Image attachment test.") - embed.setImage("attachment://" & fileName) - discard channel.sendMessage("", false, embed, @[file]) - elif (event.message.content.startsWith("?reconnect")): - var channel: Channel = event.message.getMessageChannel(event.client.cache) - if (channel != nil): - discard channel.sendMessage("Reconnecting...") - #asyncCheck event.client.reconnectClient() - asyncCheck event.client.ws.sendText("aaaa") -) - -waitFor bot.startConnection() \ No newline at end of file + result = DiscordClient(token: tkn, cache: cac, reconnecting: false) \ No newline at end of file