本文介绍了如何让 discord.py 机器人为每个玩家显示不同的统计数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以,不久前我尝试制作一个货币机器人,但结果服务器中的每个人都共享相同数量的货币.
So, I tried to make a currency bot a while back, but it ended up that everyone in the server shared the same amount of currency.
我如何让机器人的每个用户都有单独的帐户,而不是所有人共享相同的余额?
How would I make the users of a bot each have seperate accounts, and not all share the same balance?
我们将不胜感激!
推荐答案
你可以设置一个Member
的字典到货币的数量.我可能会使用成员 ID,以便在您想要关闭机器人时保存文件.
You can set up a dictionary of Member
s to amounts of currency. I would probably use the member ids, so that you can save the file when you want to shut off your bot.
from discord.ext import commands
import discord
import json
bot = commands.Bot('!')
amounts = {}
@bot.event
async def on_ready():
global amounts
try:
with open('amounts.json') as f:
amounts = json.load(f)
except FileNotFoundError:
print("Could not load amounts.json")
amounts = {}
@bot.command(pass_context=True)
async def balance(ctx):
id = ctx.message.author.id
if id in amounts:
await bot.say("You have {} in the bank".format(amounts[id]))
else:
await bot.say("You do not have an account")
@bot.command(pass_context=True)
async def register(ctx):
id = ctx.message.author.id
if id not in amounts:
amounts[id] = 100
await bot.say("You are now registered")
_save()
else:
await bot.say("You already have an account")
@bot.command(pass_context=True)
async def transfer(ctx, amount: int, other: discord.Member):
primary_id = ctx.message.author.id
other_id = other.id
if primary_id not in amounts:
await bot.say("You do not have an account")
elif other_id not in amounts:
await bot.say("The other party does not have an account")
elif amounts[primary_id] < amount:
await bot.say("You cannot afford this transaction")
else:
amounts[primary_id] -= amount
amounts[other_id] += amount
await bot.say("Transaction complete")
_save()
def _save():
with open('amounts.json', 'w+') as f:
json.dump(amounts, f)
@bot.command()
async def save():
_save()
bot.run("TOKEN")
这篇关于如何让 discord.py 机器人为每个玩家显示不同的统计数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!