diff --git a/.gitignore b/.gitignore index 38d611f..aa5010b 100644 --- a/.gitignore +++ b/.gitignore @@ -158,7 +158,7 @@ resources/bedreNetflix/ resources/games/hilo/ resources/games/blackjackTables/ resources/games/oldImages/ -resources/games/4InARowBoards/ +resources/games/connect4Boards/ resources/games/hexBoards/ resources/games/hangmanBoards/ resources/lookup/monsters.json diff --git a/cogs/GamesCog.py b/cogs/GamesCog.py index 3a177aa..7c3b13c 100644 --- a/cogs/GamesCog.py +++ b/cogs/GamesCog.py @@ -1,9 +1,19 @@ -import discord, asyncio +import discord, asyncio, json from discord.ext import commands from discord_slash import cog_ext from discord_slash import SlashCommandOptionType as scot from funcs import logThis +from utils import Options + +with open("resources/slashParameters.json", "r") as f: + params = json.load(f) + +options = Options() + +if options.testing: + for p in params: + params[p]["guild_ids"] = options.guildIds class GamesCog(commands.Cog): @@ -12,19 +22,19 @@ class GamesCog(commands.Cog): self.bot = bot # Checks user balance - @commands.command(aliases = ["b"]) + @cog_ext.cog_slash(**params["balance"]) async def balance(self, ctx): - response = self.bot.money.checkBalance("#"+str(ctx.message.author.id)) + response = self.bot.money.checkBalance("#"+str(ctx.author.id)) if response == 1: - new_message = ctx.message.author.display_name + " has " + str(response) + " GwendoBuck" + new_message = ctx.author.display_name + " has " + str(response) + " GwendoBuck" else: - new_message = ctx.message.author.display_name + " has " + str(response) + " GwendoBucks" + new_message = ctx.author.display_name + " has " + str(response) + " GwendoBucks" await ctx.send(new_message) # Gives another user an amount of GwendoBucks - @commands.command() - async def give(self, ctx, *, content): - commands = content.split(" ") + @cog_ext.cog_slash(**params["give"]) + async def give(self, ctx, parameters): + commands = parameters.split(" ") amount = int(commands[-1]) username = " ".join(commands[:-1]) if self.bot.funcs.getID(username) == None: @@ -33,13 +43,13 @@ class GamesCog(commands.Cog): username = member.display_name userID = "#" + str(member.id) self.bot.database["users"].insert_one({"_id":userID,"user name":username,"money":0}) - response = self.bot.money.giveMoney("#"+str(ctx.message.author.id),username,amount) + response = self.bot.money.giveMoney("#"+str(ctx.author.id),username,amount) await ctx.send(response) # Invest GwendoBucks in the stock market - @commands.command(aliases=["i"]) - async def invest(self, ctx, *, content = "check"): - response = self.bot.invest.parseInvest(content,"#"+str(ctx.message.author.id)) + @cog_ext.cog_slash(**params["invest"]) + async def invest(self, ctx, parameters = "check"): + response = self.bot.invest.parseInvest(parameters,"#"+str(ctx.author.id)) if response.startswith("**"): responses = response.split("\n") em = discord.Embed(title=responses[0],description="\n".join(responses[1:]),colour=0x00FF00) @@ -48,57 +58,102 @@ class GamesCog(commands.Cog): await ctx.send(response) # Runs a game of trivia - @commands.command() - async def trivia(self, ctx, *, content = ""): - if content == "": - question, answers, correctAnswer = self.bot.trivia.triviaStart(str(ctx.message.channel.id)) - if answers != "": + @cog_ext.cog_slash(**params["trivia"]) + async def trivia(self, ctx, answer = ""): + if answer == "": + question, options, correctAnswer = self.bot.trivia.triviaStart(str(ctx.channel_id)) + if options != "": results = "**"+question+"**\n" - for x, answer in enumerate(answers): - results += chr(x+97) + ") "+answer+"\n" + for x, option in enumerate(options): + results += chr(x+97) + ") "+option+"\n" await ctx.send(results) await asyncio.sleep(60) - self.bot.trivia.triviaCountPoints(str(ctx.message.channel.id)) + self.bot.trivia.triviaCountPoints(str(ctx.channel_id)) - self.bot.funcs.deleteGame("trivia questions",str(ctx.message.channel.id)) + self.bot.funcs.deleteGame("trivia questions",str(ctx.channel_id)) - logThis("Time's up for the trivia question",str(ctx.message.channel.id)) - await ctx.send("Time's up The answer was \""+chr(correctAnswer)+") "+answers[correctAnswer-97]+"\". Anyone who answered that has gotten 1 GwendoBuck") + logThis("Time's up for the trivia question",str(ctx.channel_id)) + await ctx.send("Time's up The answer was \""+chr(correctAnswer)+") "+options[correctAnswer-97]+"\". Anyone who answered that has gotten 1 GwendoBuck") else: - await ctx.send(question) + await ctx.send(question, hidden=True) - elif content in ["a","b","c","d"]: - response = self.bot.trivia.triviaAnswer("#"+str(ctx.message.author.id),str(ctx.message.channel.id),content) + elif answer in ["a","b","c","d"]: + response = self.bot.trivia.triviaAnswer("#"+str(ctx.author.id),str(ctx.channel_id),answer) if response.startswith("Locked in "): - await ctx.message.add_reaction("👍") + await ctx.send(f"{ctx.author.display_name} answered {answer}") else: await ctx.send(response) else: - logThis("I didn't understand that (error code 1101)",str(ctx.message.channel.id)) + logThis("I didn't understand that (error code 1101)",str(ctx.channel_id)) await ctx.send("I didn't understand that (error code 1101)") # Runs a game of blackjack - @commands.command(aliases = ["bj"]) - async def blackjack(self, ctx, *, content = ""): - await self.bot.blackjack.parseBlackjack(content,ctx) + @cog_ext.cog_slash(**params["blackjack"]) + async def blackjack(self, ctx, parameters = ""): + await self.bot.blackjack.parseBlackjack(parameters, ctx) - # Runs a game of Connect four - @commands.command(aliases = ["fiar","connect4","connectfour","4iar","4inarow"]) - async def fourinarow(self, ctx, *, content = ""): - await self.bot.gameLoops.fiar(ctx.message.channel,content,"#"+str(ctx.message.author.id)) + # Start a game of connect four against a user + @cog_ext.cog_subcommand(**params["connectFourStartUser"]) + async def connectFourStartUser(self, ctx, user): + await self.bot.gameLoops.connectFour(ctx, "start "+user.display_name) - # Runs a game of Hangman - @commands.command(aliases = ["hm"]) - async def hangman(self, ctx, *, content = "start"): - await self.bot.gameLoops.runHangman(ctx.message.channel,"#"+str(ctx.message.author.id),content) + # Start a game of connect four against gwendolyn + @cog_ext.cog_subcommand(**params["connectFourStartGwendolyn"]) + async def connectFourStartGwendolyn(self, ctx, difficulty = 3): + await self.bot.gameLoops.connectFour(ctx, "start "+str(difficulty)) - # Runs a game of Hex - @commands.command(name="hex") - async def hexCommand(self, ctx, *, content = ""): - await self.bot.gameLoops.runHex(ctx.message.channel,content,"#"+str(ctx.message.author.id)) + # Stop the current game of connect four + @cog_ext.cog_subcommand(**params["connectFourStop"]) + async def connectFourStop(self, ctx): + await self.bot.gameLoops.connectFour(ctx, "stop") + + # Place a piece in the current game of connect four + @cog_ext.cog_subcommand(**params["connectFourPlace"]) + async def connectFourPlace(self, ctx, column): + await self.bot.gameLoops.connectFour(ctx, "place "+str(column)) + + # Starts a game of Hangman + @cog_ext.cog_subcommand(**params["hangmanStart"]) + async def hangmanStart(self, ctx): + await self.bot.gameLoops.runHangman(ctx.channel,"#"+str(ctx.author.id),"start", ctx) + + # Stops a game of Hangman + @cog_ext.cog_subcommand(**params["hangmanStop"]) + async def hangmanStop(self, ctx): + await self.bot.gameLoops.runHangman(ctx.channel,"#"+str(ctx.author.id),"stop", ctx) + + # Start a game of Hex against another user + @cog_ext.cog_subcommand(**params["hexStartUser"]) + async def hexStartUser(self, ctx, user): + await self.bot.gameLoops.runHex(ctx, "start "+user.display_name, "#"+str(ctx.author.id)) + + # Start a game of Hex against Gwendolyn + @cog_ext.cog_subcommand(**params["hexStartGwendolyn"]) + async def hexStartGwendolyn(self, ctx, difficulty = 2): + await self.bot.gameLoops.runHex(ctx, "start "+str(difficulty), "#"+str(ctx.author.id)) + + # Undo your last hex move + @cog_ext.cog_subcommand(**params["hexUndo"]) + async def hexUndo(self, ctx): + await self.bot.gameLoops.runHex(ctx, "undo", "#"+str(ctx.author.id)) + + # Perform a hex swap + @cog_ext.cog_subcommand(**params["hexSwap"]) + async def hexSwap(self, ctx): + await self.bot.gameLoops.runHex(ctx, "swap", "#"+str(ctx.author.id)) + + # Surrender the hex game + @cog_ext.cog_subcommand(**params["hexSurrender"]) + async def hexSurrender(self, ctx): + await self.bot.gameLoops.runHex(ctx, "surrender", "#"+str(ctx.author.id)) + + # Place a piece in the hex game + @cog_ext.cog_subcommand(**params["hexPlace"]) + async def hexPlace(self, ctx, coordinates): + await self.bot.gameLoops.runHex(ctx, "place "+coordinates, "#"+str(ctx.author.id)) def setup(bot): bot.add_cog(GamesCog(bot)) \ No newline at end of file diff --git a/cogs/ReactionCog.py b/cogs/ReactionCog.py index 25dab5c..708a1fe 100644 --- a/cogs/ReactionCog.py +++ b/cogs/ReactionCog.py @@ -14,15 +14,15 @@ class ReactionCog(commands.Cog): channel = message.channel logThis(user.display_name+" reacted to a message",str(channel.id)) try: - fourInARowTheirTurn, piece = self.client.funcs.fiarReactionTest(channel,message,"#"+str(user.id)) + connectFourTheirTurn, piece = self.client.funcs.connectFourReactionTest(channel,message,"#"+str(user.id)) except: - fourInARowTheirTurn = False + connectFourTheirTurn = False bedreNetflixMessage, addMovie, imdbIds = self.client.funcs.bedreNetflixReactionTest(channel,message) - if fourInARowTheirTurn: + if connectFourTheirTurn: place = emojiToCommand(reaction.emoji) - await self.client.gameLoops.fiar(channel," place "+str(piece)+" "+str(place),user.id) + await self.client.gameLoops.connectFour(message,"place "+str(piece)+" "+str(place),user.id, str(message.channel.id)) elif bedreNetflixMessage and addMovie: moviePick = emojiToCommand(reaction.emoji) await message.delete() diff --git a/cogs/SwCog.py b/cogs/SwCog.py index adfd980..66d8ad6 100644 --- a/cogs/SwCog.py +++ b/cogs/SwCog.py @@ -1,8 +1,18 @@ -import discord, string +import discord, string, json from discord.ext import commands from discord_slash import cog_ext from funcs import cap +from utils import Options + +with open("resources/slashParameters.json", "r") as f: + params = json.load(f) + +options = Options() + +if options.testing: + for p in params: + params[p]["guild_ids"] = options.guildIds class SwCog(commands.Cog): @@ -11,37 +21,43 @@ class SwCog(commands.Cog): self.client = client # Rolls star wars dice - @cog_ext.cog_slash() - async def swroll(self, ctx, dice = ""): + @cog_ext.cog_slash(**params["starWarsRoll"]) + async def starWarsRoll(self, ctx, dice = ""): command = cap(dice) - newMessage = self.client.swroll.parseRoll("#"+str(ctx.message.author.id),command) + newMessage = self.client.swroll.parseRoll("#"+str(ctx.author.id),command) messageList = newMessage.split("\n") - for messageItem in messageList: - await ctx.send(messageItem) + await ctx.send(messageList[0]) + if len(messageList) > 1: + for messageItem in messageList[1:]: + await ctx.channel.send(messageItem) # Controls destiny points - @cog_ext.cog_slash() - async def swd(self, ctx, *, content): - newMessage = self.client.swdestiny.parseDestiny("#"+str(ctx.message.author.id),content) + @cog_ext.cog_slash(**params["starWarsDestiny"]) + async def starWarsDestiny(self, ctx, parameters = ""): + newMessage = self.client.swdestiny.parseDestiny("#"+str(ctx.author.id),parameters) messageList = newMessage.split("\n") - for messageItem in messageList: - await ctx.send(messageItem) + await ctx.send(messageList[0]) + if len(messageList) > 1: + for messageItem in messageList[1:]: + await ctx.channel.send(messageItem) # Rolls for critical injuries - @cog_ext.cog_slash() - async def swcrit(self, ctx, arg : int = 0): - newMessage = self.client.swroll.critRoll(int(arg)) + @cog_ext.cog_slash(**params["starWarsCrit"]) + async def starWarsCrit(self, ctx, severity : int = 0): + newMessage = self.client.swroll.critRoll(int(severity)) messageList = newMessage.split("\n") - for messageItem in messageList: - await ctx.send(messageItem) + await ctx.send(messageList[0]) + if len(messageList) > 1: + for messageItem in messageList[1:]: + await ctx.channel.send(messageItem) # Accesses and changes character sheet data with the parseChar function # from funcs/swfuncs/swchar.py - @cog_ext.cog_slash() - async def swchar(self, ctx, *, content = ""): - command = string.capwords(content.replace("+","+ ").replace("-","- ").replace(",",", ")) - title, desc = self.client.swchar.parseChar("#"+str(ctx.message.author.id),command) + @cog_ext.cog_slash(**params["starWarsCharacter"]) + async def starWarsCharacter(self, ctx, parameters = ""): + command = string.capwords(parameters.replace("+","+ ").replace("-","- ").replace(",",", ")) + title, desc = self.client.swchar.parseChar("#"+str(ctx.author.id),command) if title != "": em1 = discord.Embed(title = title, description = desc, colour=0xDEADBF) await ctx.send(embed = em1) diff --git a/funcs/funcs.py b/funcs/funcs.py index a06b187..fa2f1cd 100644 --- a/funcs/funcs.py +++ b/funcs/funcs.py @@ -32,19 +32,21 @@ class Funcs(): def stopServer(self): self.bot.database["trivia questions"].delete_many({}) self.bot.database["blackjack games"].delete_many({}) + self.bot.database["connect 4 games"].delete_many({}) + self.bot.database["hangman games"].delete_many({}) if not self.bot.options.testing: g = git.cmd.Git("") g.pull() - def fiarReactionTest(self,channel,message,user): - game = self.bot.database["4 in a row games"].find_one({"_id":str(channel.id)}) + def connectFourReactionTest(self,channel,message,user): + game = self.bot.database["connect 4 games"].find_one({"_id":str(channel.id)}) - with open("resources/games/oldImages/fourInARow"+str(channel.id), "r") as f: + with open("resources/games/oldImages/connectFour"+str(channel.id), "r") as f: oldImage = int(f.read()) if message.id == oldImage: - logThis("They reacted to the fourinarow game") + logThis("They reacted to the connectFour game") turn = game["turn"] if user == game["players"][turn]: return True, turn+1 diff --git a/funcs/games/blackjack.py b/funcs/games/blackjack.py index a89cb9e..64c87f5 100644 --- a/funcs/games/blackjack.py +++ b/funcs/games/blackjack.py @@ -481,8 +481,8 @@ class Blackjack(): self.bot.database["blackjack games"].update_one({"_id":channel}, {"$set":{"user hands."+user:newHand}}) - logThis(self.bot.funcs.getName(user)+" entered the game") - return self.bot.funcs.getName(user)+" entered the game" + logThis(f"{self.bot.funcs.getName(user)} entered the game with a bet of {bet}") + return f"{self.bot.funcs.getName(user)} entered the game with a bet of {bet}" else: logThis(user+" doesn't have enough GwendoBucks") return "You don't have enough GwendoBucks to place that bet" @@ -711,9 +711,10 @@ class Blackjack(): blackjackMinCards = 50 blackjackDecks = 4 - channel = ctx.message.channel.id + channel = ctx.channel_id # Starts the game if content == "": + await ctx.send("Staring a new game of blackjack") cardsLeft = 0 cards = self.bot.database["blackjack cards"].find_one({"_id":str(channel)}) if cards != None: @@ -723,14 +724,14 @@ class Blackjack(): if cardsLeft < blackjackMinCards: self.blackjackShuffle(blackjackDecks,str(channel)) logThis("Shuffling the blackjack deck...",str(channel)) - await ctx.send("Shuffling the deck...") + await ctx.channel.send("Shuffling the deck...") new_message = self.blackjackStart(str(channel)) if new_message == "started": new_message = "Blackjack game started. Use \"!blackjack bet [amount]\" to enter the game within the next 30 seconds." - await ctx.send(new_message) - oldImage = await ctx.send(file = discord.File("resources/games/blackjackTables/blackjackTable"+str(channel)+".png")) + await ctx.channel.send(new_message) + oldImage = await ctx.channel.send(file = discord.File("resources/games/blackjackTables/blackjackTable"+str(channel)+".png")) with open("resources/games/oldImages/blackjack"+str(channel), "w") as f: f.write(str(oldImage.id)) @@ -743,45 +744,45 @@ class Blackjack(): if len(game["user hands"]) == 0: gamedone = True - await ctx.send("No one entered the game. Ending the game.") + await ctx.channel.send("No one entered the game. Ending the game.") gameID = game["gameID"] # Loop of game rounds if gamedone == False: logThis("!blackjack calling self.blackjackLoop()",str(channel)) - await self.blackjackLoop(ctx.message.channel,1,gameID) + await self.blackjackLoop(ctx.channel,1,gameID) else: new_message = self.blackjackFinish(str(channel)) - await ctx.send(new_message) + await ctx.channel.send(new_message) else: - await ctx.send(new_message) + await ctx.channel.send(new_message) # Entering game and placing bet elif content.startswith("bet"): commands = content.split(" ") amount = int(commands[1]) - response = self.blackjackPlayerDrawHand(str(channel),"#"+str(ctx.message.author.id),amount) + response = self.blackjackPlayerDrawHand(str(channel),"#"+str(ctx.author.id),amount) await ctx.send(response) # Hitting elif content.startswith("hit"): if content == "hit": - response = self.blackjackHit(str(channel),"#"+str(ctx.message.author.id)) + response = self.blackjackHit(str(channel),"#"+str(ctx.author.id)) else: commands = content.split(" ") try: handNumber = int(commands[1]) except: handNumber = 0 - response = self.blackjackHit(str(channel),"#"+str(ctx.message.author.id),handNumber) + response = self.blackjackHit(str(channel),"#"+str(ctx.author.id),handNumber) if response.startswith("accept"): - await ctx.message.add_reaction("👍") + await ctx.send(f"{ctx.author.display_name} hit") #try: if response[6] == "T": gameID = self.bot.database["blackjack games"].find_one({"_id":str(channel)})["gameID"] logThis("Hit calling self.blackjackLoop()",str(channel)) - await self.blackjackLoop(ctx.message.channel,int(response[7:])+1,gameID) + await self.blackjackLoop(ctx.channel,int(response[7:])+1,gameID) #except: # logThis("Something fucked up (error code 1320)",str(channel)) else: @@ -791,22 +792,22 @@ class Blackjack(): # Standing elif content.startswith("stand"): if content == "hit": - response = self.blackjackStand(str(channel),"#"+str(ctx.message.author.id)) + response = self.blackjackStand(str(channel),"#"+str(ctx.author.id)) else: commands = content.split(" ") try: handNumber = int(commands[1]) except: handNumber = 0 - response = self.blackjackStand(str(channel),"#"+str(ctx.message.author.id),handNumber) + response = self.blackjackStand(str(channel),"#"+str(ctx.author.id),handNumber) if response.startswith("accept"): - await ctx.message.add_reaction("👍") + await ctx.send(f"{ctx.author.display_name} is standing") #try: if response[6] == "T": gameID = self.bot.database["blackjack games"].find_one({"_id":str(channel)})["gameID"] logThis("Stand calling self.blackjackLoop()",str(channel)) - await self.blackjackLoop(ctx.message.channel,int(response[7:])+1,gameID) + await self.blackjackLoop(ctx.channel,int(response[7:])+1,gameID) #except: # logThis("Something fucked up (error code 1320)",str(channel)) else: @@ -819,7 +820,7 @@ class Blackjack(): handNumber = int(commands[1]) except: handNumber = 0 - response, roundDone = self.blackjackDouble(str(channel),"#"+str(ctx.message.author.id),handNumber) + response, roundDone = self.blackjackDouble(str(channel),"#"+str(ctx.author.id),handNumber) await ctx.send(response) @@ -827,7 +828,7 @@ class Blackjack(): if roundDone[0] == "T": gameID = self.bot.database["blackjack games"].find_one({"_id":str(channel)})["gameID"] logThis("Double calling self.blackjackLoop()",str(channel)) - await self.blackjackLoop(ctx.message.channel,int(roundDone[1:])+1,gameID) + await self.blackjackLoop(ctx.channel,int(roundDone[1:])+1,gameID) except: logThis("Something fucked up (error code 1320)",str(channel)) @@ -838,7 +839,7 @@ class Blackjack(): handNumber = int(commands[1]) except: handNumber = 0 - response, roundDone = self.blackjackSplit(str(channel),"#"+str(ctx.message.author.id),handNumber) + response, roundDone = self.blackjackSplit(str(channel),"#"+str(ctx.author.id),handNumber) await ctx.send(response) @@ -846,7 +847,7 @@ class Blackjack(): if roundDone[0] == "T": gameID = self.bot.database["blackjack games"].find_one({"_id":str(channel)})["gameID"] logThis("Split calling self.blackjackLoop()",str(channel)) - await self.blackjackLoop(ctx.message.channel,int(roundDone[1:])+1,gameID) + await self.blackjackLoop(ctx.channel,int(roundDone[1:])+1,gameID) except: logThis("Something fucked up (error code 1320)") @@ -857,7 +858,7 @@ class Blackjack(): hilo = str(data["hilo"]) else: hilo = "0" - await ctx.send(hilo) + await ctx.send(hilo, hidden=True) # Shuffles the blackjack deck elif content.startswith("shuffle"): @@ -874,7 +875,7 @@ class Blackjack(): cardsLeft = len(cards["cards"]) decksLeft = round(cardsLeft/52,1) - await ctx.send(str(cardsLeft)+" cards, "+str(decksLeft)+" decks") + await ctx.send(str(cardsLeft)+" cards, "+str(decksLeft)+" decks", hidden=True) else: logThis("Not a command (error code 1301)") diff --git a/funcs/games/fourInARow.py b/funcs/games/connectFour.py similarity index 83% rename from funcs/games/fourInARow.py rename to funcs/games/connectFour.py index 23fa96a..9a93333 100644 --- a/funcs/games/fourInARow.py +++ b/funcs/games/connectFour.py @@ -2,7 +2,7 @@ import random import copy import math -from .fourInARowDraw import DrawFourInARow +from .connectFourDraw import drawConnectFour from funcs import logThis AIScores = { @@ -20,14 +20,14 @@ rowCount = 6 columnCount = 7 easy = True -class FourInARow(): +class connectFour(): def __init__(self,bot): self.bot = bot - self.draw = DrawFourInARow(bot) + self.draw = drawConnectFour(bot) # Starts the game - def fourInARowStart(self, channel, user, opponent): - game = self.bot.database["4 in a row games"].find_one({"_id":channel}) + def connectFourStart(self, channel, user, opponent): + game = self.bot.database["connect 4 games"].find_one({"_id":channel}) if game == None: @@ -62,7 +62,7 @@ class FourInARow(): newGame = {"_id":channel,"board": board,"winner":0,"win direction":"", "win coordinates":[0,0],"players":players,"turn":0,"difficulty":difficulty} - self.bot.database["4 in a row games"].insert_one(newGame) + self.bot.database["connect 4 games"].insert_one(newGame) self.draw.drawImage(channel) @@ -73,11 +73,11 @@ class FourInARow(): return "Started game against "+self.bot.funcs.getName(opponent)+diffText+". It's "+self.bot.funcs.getName(players[0])+"'s turn", True, False, False, gwendoTurn else: - return "There's already a 4 in a row game going on in this channel", False, False, False, False + return "There's already a connect 4 game going on in this channel", False, False, False, False # Places a piece at the lowest available point in a specific column def placePiece(self, channel : str,player : int,column : int): - game = self.bot.database["4 in a row games"].find_one({"_id":channel}) + game = self.bot.database["connect 4 games"].find_one({"_id":channel}) if game != None: board = game["board"] @@ -85,18 +85,18 @@ class FourInARow(): board = self.placeOnBoard(board,player,column) if board != None: - self.bot.database["4 in a row games"].update_one({"_id":channel},{"$set":{"board":board}}) + self.bot.database["connect 4 games"].update_one({"_id":channel},{"$set":{"board":board}}) turn = (game["turn"]+1)%2 - self.bot.database["4 in a row games"].update_one({"_id":channel},{"$set":{"turn":turn}}) + self.bot.database["connect 4 games"].update_one({"_id":channel},{"$set":{"turn":turn}}) logThis("Checking for win") won, winDirection, winCoordinates = self.isWon(board) if won != 0: gameWon = True - self.bot.database["4 in a row games"].update_one({"_id":channel},{"$set":{"winner":won}}) - self.bot.database["4 in a row games"].update_one({"_id":channel},{"$set":{"win direction":winDirection}}) - self.bot.database["4 in a row games"].update_one({"_id":channel}, + self.bot.database["connect 4 games"].update_one({"_id":channel},{"$set":{"winner":won}}) + self.bot.database["connect 4 games"].update_one({"_id":channel},{"$set":{"win direction":winDirection}}) + self.bot.database["connect 4 games"].update_one({"_id":channel}, {"$set":{"win coordinates":winCoordinates}}) message = self.bot.funcs.getName(game["players"][won-1])+" placed a piece in column "+str(column+1)+" and won." @@ -139,19 +139,19 @@ class FourInARow(): return board # Parses command - def parseFourInARow(self, command, channel, user): + def parseconnectFour(self, command, channel, user): commands = command.split() if command == "" or command == " ": - return "I didn't get that. Use \"!fourinarow start [opponent]\" to start a game. To play against the computer, use difficulty 1 through 5 as the [opponent].", False, False, False, False + return "I didn't get that. Use \"!connectFour start [opponent]\" to start a game. To play against the computer, use difficulty 1 through 5 as the [opponent].", False, False, False, False elif commands[0] == "start": # Starting a game - if len(commands) == 1: # if the commands is "!fourinarow start", the opponent is Gwendolyn + if len(commands) == 1: # if the commands is "!connectFour start", the opponent is Gwendolyn commands.append("3") - return self.fourInARowStart(channel,user,commands[1]) # commands[1] is the opponent + return self.connectFourStart(channel,user,commands[1]) # commands[1] is the opponent # Stopping the game elif commands[0] == "stop": - game = self.bot.database["4 in a row games"].find_one({"_id":channel}) + game = self.bot.database["connect 4 games"].find_one({"_id":channel}) if user in game["players"]: return "Ending game.", False, False, True, False @@ -160,12 +160,21 @@ class FourInARow(): # Placing manually elif commands[0] == "place": - try: - return self.placePiece(channel,int(commands[1]),int(commands[2])-1) - except: - return "I didn't get that. To place a piece use \"!fourinarow place [player number] [column]\" or press the corresponding message-reaction beneath the board.", False, False, False, False + if len(commands) == 2: + game = self.bot.database["connect 4 games"].find_one({"_id":channel}) + turn = game["turn"] + if user == game["players"][turn]: + piece = turn + 1 + else: + logThis("It wasn't their turn") + return "It's not your turn!", False, False, False, False + column = int(commands[1])-1 + else: + column = int(commands[2])-1 + piece = int(commands[1]) + return self.placePiece(channel, piece, column) else: - return "I didn't get that. Use \"!fourinarow start [opponent]\" to start a game. To play against the computer, use difficulty 1 through 5 as the [opponent].", False, False, False, False + return "I didn't get that. Use \"!connectFour start [opponent]\" to start a game. To play against the computer, use difficulty 1 through 5 as the [opponent].", False, False, False, False # Checks if someone has won the game and returns the winner def isWon(self, board): @@ -226,9 +235,9 @@ class FourInARow(): return won, winDirection, winCoordinates # Plays as the AI - async def fourInARowAI(self, channel): + async def connectFourAI(self, channel): logThis("Figuring out best move") - game = self.bot.database["4 in a row games"].find_one({"_id":channel}) + game = self.bot.database["connect 4 games"].find_one({"_id":channel}) board = game["board"] player = game["players"].index("Gwendolyn")+1 diff --git a/funcs/games/fourInARowDraw.py b/funcs/games/connectFourDraw.py similarity index 97% rename from funcs/games/fourInARowDraw.py rename to funcs/games/connectFourDraw.py index 58a99da..9176260 100644 --- a/funcs/games/fourInARowDraw.py +++ b/funcs/games/connectFourDraw.py @@ -3,14 +3,14 @@ import math from PIL import Image, ImageDraw, ImageFont from funcs import logThis -class DrawFourInARow(): +class drawConnectFour(): def __init__(self,bot): self.bot = bot # Draws the whole thing def drawImage(self, channel): - logThis("Drawing four in a row board") - game = self.bot.database["4 in a row games"].find_one({"_id":channel}) + logThis("Drawing connect four board") + game = self.bot.database["connect 4 games"].find_one({"_id":channel}) board = game["board"] @@ -153,4 +153,4 @@ class DrawFourInARow(): d.text((w-border-textWidth,exampleHeight),player2,font=fnt,fill=(0,0,0)) - background.save("resources/games/4InARowBoards/board"+channel+".png") + background.save("resources/games/connect4Boards/board"+channel+".png") diff --git a/funcs/games/gameLoops.py b/funcs/games/gameLoops.py index d70f172..0d3d90c 100644 --- a/funcs/games/gameLoops.py +++ b/funcs/games/gameLoops.py @@ -23,36 +23,36 @@ class GameLoops(): return oldMessage - # Runs Four in a Row - async def fiar(self, channel,command,user): - try: - response, showImage, deleteImage, gameDone, gwendoTurn = self.bot.fourInARow.parseFourInARow(command,str(channel.id),user) - except: - logThis("Error parsing command (error code 1410)") + # Runs connect four + async def connectFour(self, ctx, command, user = None, channelId = None): + if user is None: + user = "#"+str(ctx.author.id) - await channel.send(response) - logThis(response,str(channel.id)) + if channelId is None: + channelId = str(ctx.channel_id) + + response, showImage, deleteImage, gameDone, gwendoTurn = self.bot.connectFour.parseconnectFour(command,channelId, user) + + if hasattr(ctx, "send"): + await ctx.send(response) + else: + await ctx.channel.send(response) + logThis(response,channelId) if showImage: if deleteImage: - try: - oldImage = await self.deleteMessage("fourInARow"+str(channel.id),channel) - except: - logThis("Error deleting message (error code 1401)") - oldImage = await channel.send(file = discord.File("resources/games/4InARowBoards/board"+str(channel.id)+".png")) + oldImage = await self.deleteMessage("connectFour"+channelId,ctx.channel) + oldImage = await ctx.channel.send(file = discord.File("resources/games/connect4Boards/board"+channelId+".png")) if gameDone == False: if gwendoTurn: - try: - response, showImage, deleteImage, gameDone, gwendoTurn = await self.bot.fourInARow.fourInARowAI(str(channel.id)) - except: - logThis("AI error (error code 1420)") - await channel.send(response) - logThis(response,str(channel.id)) + response, showImage, deleteImage, gameDone, gwendoTurn = await self.bot.connectFour.connectFourAI(channelId) + await ctx.channel.send(response) + logThis(response,channelId) if showImage: if deleteImage: await oldImage.delete() - oldImage = await channel.send(file = discord.File("resources/games/4InARowBoards/board"+str(channel.id)+".png")) + oldImage = await ctx.channel.send(file = discord.File("resources/games/connect4Boards/board"+channelId+".png")) if gameDone == False: - with open("resources/games/oldImages/fourInARow"+str(channel.id), "w") as f: + with open("resources/games/oldImages/connectFour"+channelId, "w") as f: f.write(str(oldImage.id)) try: reactions = ["1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣"] @@ -63,7 +63,7 @@ class GameLoops(): logThis("Image deleted before I could react to all of them") else: - with open("resources/games/oldImages/fourInARow"+str(channel.id), "w") as f: + with open("resources/games/oldImages/connectFour"+channelId, "w") as f: f.write(str(oldImage.id)) try: reactions = ["1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣"] @@ -73,10 +73,10 @@ class GameLoops(): logThis("Image deleted before I could react to all of them") if gameDone: - game = self.bot.database["4 in a row games"].find_one({"_id":str(channel.id)}) + game = self.bot.database["connect 4 games"].find_one({"_id":channelId}) try: - with open("resources/games/oldImages/fourInARow"+str(channel.id), "r") as f: + with open("resources/games/oldImages/connectFour"+channelId, "r") as f: oldImage = await channel.fetch_message(int(f.read())) await oldImage.delete() @@ -90,15 +90,18 @@ class GameLoops(): if game["players"][winner-1].lower() != "gwendolyn": self.bot.money.addMoney(game["players"][winner-1].lower(),reward) - self.bot.funcs.deleteGame("4 in a row games",str(channel.id)) + self.bot.funcs.deleteGame("connect 4 games",channelId) - async def runHangman(self,channel,user,command = "start"): + async def runHangman(self,channel,user,command = "start", ctx = None): try: response, showImage, deleteImage, remainingLetters = self.bot.hangman.parseHangman(str(channel.id),user,command) except: logThis("Error parsing command (error code 1701)") if response != "": - await channel.send(response) + if ctx is None: + await channel.send(response) + else: + await ctx.send(response) logThis(response,str(channel.id)) if showImage: if deleteImage: @@ -127,44 +130,45 @@ class GameLoops(): logThis("Image deleted before adding all reactions") # Runs Hex - async def runHex(self,channel,command,user): + async def runHex(self,ctx,command,user): + channelId = ctx.channel_id try: - response, showImage, deleteImage, gameDone, gwendoTurn = self.bot.hex.parseHex(command,str(channel.id),user) + response, showImage, deleteImage, gameDone, gwendoTurn = self.bot.hex.parseHex(command,str(channelId),user) except: logThis("Error parsing command (error code 1510)") - await channel.send(response) + await ctx.send(response) - logThis(response,str(channel.id)) + logThis(response,str(channelId)) if showImage: if deleteImage: try: - oldImage = await self.deleteMessage("hex"+str(channel.id),channel) + oldImage = await self.deleteMessage("hex"+str(channelId),ctx.channel) except: logThis("Error deleting old image (error code 1501)") - oldImage = await channel.send(file = discord.File("resources/games/hexBoards/board"+str(channel.id)+".png")) + oldImage = await ctx.channel.send(file = discord.File("resources/games/hexBoards/board"+str(channelId)+".png")) if gwendoTurn and not gameDone: try: - response, showImage, deleteImage, gameDone, gwendoTurn = self.bot.hex.hexAI(str(channel.id)) + response, showImage, deleteImage, gameDone, gwendoTurn = self.bot.hex.hexAI(str(channelId)) except: - response, showImage, deleteImage, gameDone, gwendoTurn = "An AI error occured",False,False,False,False + response, showImage, deleteImage, gameDone, gwendoTurn = "An AI error ocurred",False,False,False,False logThis("AI error (error code 1520)") - await channel.send(response) - logThis(response,str(channel.id)) + await ctx.channel.send(response) + logThis(response,str(channelId)) if showImage: if deleteImage: await oldImage.delete() - oldImage = await channel.send(file = discord.File("resources/games/hexBoards/board"+str(channel.id)+".png")) + oldImage = await ctx.channel.send(file = discord.File("resources/games/hexBoards/board"+str(channelId)+".png")) if not gameDone: - with open("resources/games/oldImages/hex"+str(channel.id), "w") as f: + with open("resources/games/oldImages/hex"+str(channelId), "w") as f: f.write(str(oldImage.id)) if gameDone: - game = self.bot.database["hex games"].find_one({"_id":str(channel.id)}) - + game = self.bot.database["hex games"].find_one({"_id":str(channelId)}) + winner = game["winner"] if winner != 0 and game["players"][0] != game["players"][1]: # player1 != player2 winnings = game["difficulty"]*10 self.bot.money.addMoney(game["players"][winner-1].lower(),winnings) - self.bot.funcs.deleteGame("hex games",str(channel.id)) + self.bot.funcs.deleteGame("hex games",str(channelId)) diff --git a/funcs/games/games.py b/funcs/games/games.py index c17a142..9000138 100644 --- a/funcs/games/games.py +++ b/funcs/games/games.py @@ -1,7 +1,7 @@ from .invest import Invest from .trivia import Trivia from .blackjack import Blackjack -from .fourInARow import FourInARow +from .connectFour import connectFour from .gameLoops import GameLoops from .hangman import Hangman from .hex import HexGame @@ -13,7 +13,7 @@ class Games(): bot.invest = Invest(bot) bot.trivia = Trivia(bot) bot.blackjack = Blackjack(bot) - bot.fourInARow = FourInARow(bot) + bot.connectFour = connectFour(bot) bot.gameLoops = GameLoops(bot) bot.hangman = Hangman(bot) bot.hex = HexGame(bot) diff --git a/funcs/games/hex.py b/funcs/games/hex.py index 4fc819c..6924aa3 100644 --- a/funcs/games/hex.py +++ b/funcs/games/hex.py @@ -196,7 +196,7 @@ class HexGame(): else: return "There's no game in this channel", False, False, False, False - # Returns a board where the placement has occured + # Returns a board where the placement has ocurred def placeOnHexBoard(self, board,player,position): # Translates the position position = position.lower() diff --git a/funcs/swfuncs/swroll.py b/funcs/swfuncs/swroll.py index e3d8505..ec6573c 100644 --- a/funcs/swfuncs/swroll.py +++ b/funcs/swfuncs/swroll.py @@ -173,21 +173,21 @@ class SwRoll(): emoji = "" for char in result: if char == 'S': - emoji += "<:success:690971244971163718> " + emoji += "<:success:826026925280854026> " elif char == 'A': - emoji += "<:advantage:690970761611051079> " + emoji += "<:advantage:826026925515604009> " elif char == 'R': - emoji += "<:swtriumph:690971267486187643> " + emoji += "<:triumph:826026925319127070> " elif char == 'F': - emoji += "<:failure:690970957786906664> " + emoji += "<:failure:826026925288980511> " elif char == 'H': - emoji += "<:threat:690971009469382656> " + emoji += "<:threat:826026925280985108> " elif char == 'D': - emoji += "<:despair:690971200163414238> " + emoji += "<:despair:826026925272203294> " elif char == 'L': - emoji += "<:light:691010089905029171>" + emoji += "<:light:826026925059211295>" elif char == 'B': - emoji += "<:dark:691010101901000852>" + emoji += "<:dark:826026925289373717>" return emoji diff --git a/resources/errorCodes.txt b/resources/errorCodes.txt index 68a664a..9234601 100644 --- a/resources/errorCodes.txt +++ b/resources/errorCodes.txt @@ -99,7 +99,7 @@ 1340 - Error in drawing blackjack table 1341 - Error in drawHand() -14 - Four in a row +14 - connect four 1400 - Unspecified error 1401 - Error deleting old image 1410 - Unspecified parsing error diff --git a/resources/help/help-connectfour.txt b/resources/help/help-connectfour.txt new file mode 100644 index 0000000..073324c --- /dev/null +++ b/resources/help/help-connectfour.txt @@ -0,0 +1 @@ +Brug `!connectFour start` til at starte et spil imod Gwendolyn. Brug `!connectFour start [modstander]` for at spille imod en anden person. Du kan også bruge `!connectFour start [1-5]`, hvor tallet er sværhedsgraden af Gwendolyn du gerne vil spille imod. \ No newline at end of file diff --git a/resources/help/help-fourinarow.txt b/resources/help/help-fourinarow.txt deleted file mode 100644 index c191230..0000000 --- a/resources/help/help-fourinarow.txt +++ /dev/null @@ -1 +0,0 @@ -Brug `!fourinarow start` til at starte et spil imod Gwendolyn. Brug `!fourinarow start [modstander]` for at spille imod en anden person. Du kan også bruge `!fourinarow start [1-5]`, hvor tallet er sværhedsgraden af Gwendolyn du gerne vil spille imod. \ No newline at end of file diff --git a/resources/help/help-map.txt b/resources/help/help-map.txt deleted file mode 100644 index 9bc9cf8..0000000 --- a/resources/help/help-map.txt +++ /dev/null @@ -1 +0,0 @@ -Få et billede af Senkulpa kortet. \ No newline at end of file diff --git a/resources/help/help-starwarscharacter.txt b/resources/help/help-starwarscharacter.txt new file mode 100644 index 0000000..ef610ad --- /dev/null +++ b/resources/help/help-starwarscharacter.txt @@ -0,0 +1 @@ + Du kan bruge kommandoer som `!starWarsCharacter name Jared` eller `!starWarsCharacter skills astrogation 3` til at ændre din karakters info. Kommandoen `!starWarsCharacter` vil give dig et character sheet for din karakter. \ No newline at end of file diff --git a/resources/help/help-swroll.txt b/resources/help/help-starwarsroll.txt similarity index 86% rename from resources/help/help-swroll.txt rename to resources/help/help-starwarsroll.txt index 51478ac..13b059f 100644 --- a/resources/help/help-swroll.txt +++ b/resources/help/help-starwarsroll.txt @@ -1 +1 @@ -Lader dig rulle Star Wars terninger. Du kan skrive tal der repræsenterer antallet af hver terning i rækkefølgen: ability, proficiency, difficulty, challenge, boost, setback og force. Du behøver ikke skrive et tal til alle terningerne. Du kan også skrive forbogstavet for terningen du vil rulle før antallet, såsom "!swroll f2", der ruller 2 force terninger. \ No newline at end of file +Lader dig rulle Star Wars terninger. Du kan skrive tal der repræsenterer antallet af hver terning i rækkefølgen: ability, proficiency, difficulty, challenge, boost, setback og force. Du behøver ikke skrive et tal til alle terningerne. Du kan også skrive forbogstavet for terningen du vil rulle før antallet, såsom "!starWarsRoll f2", der ruller 2 force terninger. \ No newline at end of file diff --git a/resources/help/help-swchar.txt b/resources/help/help-swchar.txt deleted file mode 100644 index 70fc0eb..0000000 --- a/resources/help/help-swchar.txt +++ /dev/null @@ -1 +0,0 @@ - Du kan bruge kommandoer som `!swchar name Jared` eller `!swchar skills astrogation 3` til at ændre din karakters info. Kommandoen `!swchar` vil give dig et character sheet for din karakter. \ No newline at end of file diff --git a/resources/help/help.txt b/resources/help/help.txt index ccbbb01..bec5171 100644 --- a/resources/help/help.txt +++ b/resources/help/help.txt @@ -6,8 +6,6 @@ `!monster` - Slå et monster op. -`!map` - Få et billede af Senkulpa kortet. - `!image` - Finder et tilfældigt billede fra internettet. `!movie` - Giver titlen på en tilfældig film fra Bedre Netflix @@ -18,9 +16,9 @@ `!give` - Lader dig give GwendoBucks til andre. -`!swchar` - Lader dig lave en Star Wars karakter. +`!starWarsCharacter` - Lader dig lave en Star Wars karakter. -`!swroll` - Lader dig rulle Star Wars terninger. +`!starWarsRoll` - Lader dig rulle Star Wars terninger. `!balance` - Viser dig hvor mange GwendoBucks du har. @@ -30,7 +28,7 @@ `!trivia` - Lader dig spille et spil trivia, hvor du kan tjene GwendoBucks. -`!fourinarow` - Lader dig spille et spil fire på stribe. +`!connectFour` - Lader dig spille et spil fire på stribe. `!hex` - Lader dig spille et spil Hex. diff --git a/resources/slashParameters.json b/resources/slashParameters.json index cb1c2a3..24341e7 100644 --- a/resources/slashParameters.json +++ b/resources/slashParameters.json @@ -23,6 +23,68 @@ } ] }, + "balance" : { + "name" : "balance", + "description" : "See your balance of GwendoBucks" + }, + "blackjack" : { + "name" : "blackjack", + "description" : "Run a game of blackjack", + "options" : [ + { + "name" : "parameters", + "description" : "The parameters for the command", + "type" : 3, + "required" : "false" + } + ] + }, + "connectFourStartGwendolyn" : { + "base" : "connectFour", + "subcommand_group" : "start", + "name" : "Gwendolyn", + "description" : "Start a game of connect four against Gwendolyn", + "options" : [ + { + "name" : "difficulty", + "description" : "The difficulty of Gwendolyn's AI", + "type" : 4, + "required" : "false" + } + ] + }, + "connectFourStartUser" : { + "base" : "connectFour", + "subcommand_group" : "start", + "name" : "user", + "description" : "Start a game of connect four against another user", + "options" : [ + { + "name" : "user", + "description" : "The user to start a game against", + "type" : 6, + "required" : "true" + } + ] + }, + "connectFourStop" : { + "base" : "connectFour", + "name" : "stop", + "description" : "Stop the game of connect four" + }, + "connectFourPlace" : { + "base" : "connectFour", + "name" : "place", + "description" : "Place a piece", + "options" : [ + { + "name" : "column", + "description" : "The column to place the piece", + "type" : 4, + "required" : "true" + } + ] + }, "downloading" : { "name" : "downloading", "description" : "See current downloads for Bedre Netflix", @@ -47,6 +109,28 @@ } ] }, + "give" : { + "name" : "give", + "description" : "Give GwendoBucks to another user", + "options" : [ + { + "name" : "parameters", + "description" : "The user and amount of GwendoBucks you're sending", + "type" : 3, + "required" : "true" + } + ] + }, + "hangmanStart" : { + "base" : "hangman", + "name" : "start", + "description" : "Start a game of hangman" + }, + "hangmanStop" : { + "base" : "hangman", + "name" : "stop", + "description" : "Stop the current game of hangman" + }, "hello" : { "name" : "hello", "description" : "Greet Gwendolyn" @@ -63,6 +147,74 @@ } ] }, + "hexPlace" : { + "base" : "hex", + "name" : "place", + "description" : "Place a piece on the hex board", + "options" : [ + { + "name" : "coordinates", + "description" : "The coordinates to place the piece at", + "type" : 3, + "required" : "true" + } + ] + }, + "hexStartGwendolyn" : { + "base" : "hex", + "subcommand_group" : "start", + "name" : "Gwendolyn", + "description" : "Start a game of hex against Gwendolyn", + "options" : [ + { + "name" : "difficulty", + "description" : "The difficulty of Gwendolyn's AI", + "type" : 4, + "required" : "false" + } + ] + }, + "hexStartUser" : { + "base" : "hex", + "subcommand_group" : "start", + "name" : "user", + "description" : "Start a game of hex against another user", + "options" : [ + { + "name" : "user", + "description" : "The user to start a game against", + "type" : 6, + "required" : "true" + } + ] + }, + "hexSurrender" : { + "base" : "hex", + "name" : "surrender", + "description" : "Surrender the game of hex" + }, + "hexSwap" : { + "base" : "hex", + "name" : "swap", + "description" : "Perform a hex swap" + }, + "hexUndo" : { + "base" : "hex", + "name" : "undo", + "description" : "Undo your last hex move" + }, + "invest" : { + "name" : "invest", + "description" : "Invest GwendoBucks in the stock market", + "options" : [ + { + "name" : "parameters", + "description" : "The parameters for the command", + "type" : 3, + "required" : "false" + } + ] + }, "image" : { "name" : "image", "description" : "Get a random image from Bing" @@ -115,6 +267,54 @@ } ] }, + "starWarsCharacter" : { + "name" : "starWarsCharacter", + "description" : "Manage your Star Wars character sheet", + "options" : [ + { + "name" : "parameters", + "description" : "The parameters for the command", + "type" : 3, + "required" : "false" + } + ] + }, + "starWarsCrit" : { + "name" : "starWarsCrit", + "description" : "Roll a Star Wars critical injury", + "options" : [ + { + "name" : "severity", + "description" : "The severity of the hit", + "type" : 4, + "required" : "true" + } + ] + }, + "starWarsDestiny" : { + "name" : "starWarsDestiny", + "description" : "Use and see Star Wars Destiny points", + "options" : [ + { + "name" : "parameters", + "description" : "The parameters for the command", + "type" : 3, + "required" : "false" + } + ] + }, + "starWarsRoll" : { + "name" : "starWarsRoll", + "description" : "Roll Star Wars dice", + "options" : [ + { + "name" : "dice", + "description" : "The dice, or ability, to roll", + "type" : 3, + "required" : "false" + } + ] + }, "stop" : { "name" : "stop", "description" : "Restart Gwendolyn" @@ -127,6 +327,18 @@ "name" : "thank", "description" : "Thank Gwendolyn for her service" }, + "trivia" : { + "name" : "trivia", + "description" : "Play a game of trivia", + "options" : [ + { + "name" : "answer", + "description" : "Your answer to the trivia question", + "type" : 3, + "required" : "false" + } + ] + }, "wiki" : { "name" : "wiki", "description" : "Searches for and gets the info for a wiki page", diff --git a/resources/startingFiles.json b/resources/startingFiles.json index a17b123..60f3cd0 100644 --- a/resources/startingFiles.json +++ b/resources/startingFiles.json @@ -60,11 +60,11 @@ "resources/movies.txt": "The Room", "resources/names.txt": "Gandalf", "credentials.txt" : "Bot token: TOKEN\nFinnhub API key: KEY\nWordnik API Key: KEY\nMongoDB user: USERNAME\nMongoDB password: PASSWORD\nWolframAlpha AppID: APPID\nRadarr API key: KEY\nSonarr API key: KEY", - "options.txt" : "Testing: True" + "options.txt" : "Testing: True\nTesting guild id:\nAdmins:" }, "folder" : [ "resources/games/blackjackTables", - "resources/games/4InARowBoards", + "resources/games/connect4Boards", "resources/games/hexBoards", "resources/games/hangmanBoards", "resources/bedreNetflix"