我在我的不和谐服务器中创建了10个不和谐的机器人,我想为每个机器人创建相同的函数,但是为了编写一个简单的bot命令,我需要编写40行代码,有什么方法可以缩短代码呢?因为写10遍相同的代码是很麻烦的。这是我的密码。
import asyncio
import random
import discord
from discord.ext import commands
bot_1 = commands.Bot(command_prefix='()')
bot_2 = commands.Bot(command_prefix='()')
bot_3 = commands.Bot(command_prefix='()')
bot_4 = commands.Bot(command_prefix='()')
bot_5 = commands.Bot(command_prefix='()')
bot_6 = commands.Bot(command_prefix='()')
bot_7 = commands.Bot(command_prefix='()')
bot_8 = commands.Bot(command_prefix='()')
bot_9 = commands.Bot(command_prefix='()')
bot_10 = commands.Bot(command_prefix='()')
loop = asyncio.get_event_loop()
loop.create_task(bot_1.start("token 1"))
loop.create_task(bot_2.start("token 2"))
loop.create_task(bot_3.start("token 3"))
loop.create_task(bot_4.start("token 4"))
loop.create_task(bot_5.start("token 5"))
loop.create_task(bot_6.start("token 6"))
loop.create_task(bot_7.start("token 7"))
loop.create_task(bot_8.start("token 8"))
loop.create_task(bot_9.start("token 9"))
loop.create_task(bot_10.start("token 10"))
@bot_1.event
async def on_ready():
print("Tutti i bot sono stati caricati correttamente.\n")
@bot_1.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_2.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_3.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_4.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_5.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_6.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_7.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_8.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_9.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
@bot_10.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
try:
loop.run_forever()
finally:
loop.stop()(我不能发布这个,因为大部分是代码)(我不能发布这个,因为大部分是代码)(我不能发布这个,因为大部分是代码)(我不能发布这个,因为大部分是代码)
发布于 2020-11-11 23:09:30
这可能看起来像
import asyncio
import random
import discord
from discord.ext import commands
TOKENS = ["token 1"
"token 2"
"token 3"
"token 4"
"token 5"
"token 6"
"token 7"
"token 8"
"token 9"
"token 10"]
async def on_ready():
print("Tutti i bot sono stati caricati correttamente.\n")
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
loop = asyncio.get_event_loop()
for token in TOKENS:
bot = commands.Bot(command_prefix='()')
loop.create_task(bot.start(token))
bot.event(on_ready)
bot.command()(parola_casuale)
try:
loop.run_forever()
finally:
loop.stop()发布于 2020-11-11 23:03:16
使用循环和列表:
import asyncio
import random
import discord
from discord.ext import commands
bots = [] #empty
tokens = ["key1","key2"] #here should be all the keys
loop = asyncio.get_event_loop()
@bot.event
async def on_ready():
print("Tutti i bot sono stati caricati correttamente.\n")
@bot.command()
async def parola_casuale(ctx):
file = open("Parole.txt", "r")
parole = file.readlines()
parola = random.choice(parole)
await ctx.message.channel.send(f"Ecco a te: {parola}")
for i in range(len(tokens)): #for every token
bots.append(commands.Bot(command_prefix='()')) #create a bot
loop.create_task(bot[i].start(tokens[i])) #start the bothttps://stackoverflow.com/questions/64795342
复制相似问题