ok
This commit is contained in:
@@ -3,8 +3,10 @@ import redis
|
|||||||
from config import REDIS_URL, REDIS_USER, REDIS_PSW
|
from config import REDIS_URL, REDIS_USER, REDIS_PSW
|
||||||
|
|
||||||
class User:
|
class User:
|
||||||
def __init__(self, balance: int) -> None:
|
user_id: str
|
||||||
|
def __init__(self, user_id: str, balance: int) -> None:
|
||||||
self.balance = balance
|
self.balance = balance
|
||||||
|
self.user_id = str(user_id)
|
||||||
|
|
||||||
def set_balance(self, balance) -> int:
|
def set_balance(self, balance) -> int:
|
||||||
self.balance = balance
|
self.balance = balance
|
||||||
@@ -27,22 +29,13 @@ class Aura:
|
|||||||
self.r = redis.Redis(host=redis_host[0], port=int(redis_host[1]), username=REDIS_USER, password=REDIS_PSW, decode_responses=True)
|
self.r = redis.Redis(host=redis_host[0], port=int(redis_host[1]), username=REDIS_USER, password=REDIS_PSW, decode_responses=True)
|
||||||
self.load()
|
self.load()
|
||||||
|
|
||||||
def load(self) -> None:
|
|
||||||
data = loads(self.r.get('data'))
|
|
||||||
for k in data:
|
|
||||||
self.data[k] = User(data[k]['balance'])
|
|
||||||
|
|
||||||
def get(self, user_id) -> User | None:
|
def get(self, user_id) -> User | None:
|
||||||
if user_id in self.data:
|
return User(int(self.r.get(user_id)))
|
||||||
return self.r.get(str(user_id))
|
|
||||||
|
|
||||||
def add(self, user_id) -> User:
|
def add(self, user_id) -> User:
|
||||||
self.data[user_id] = User(100)
|
u = User(user_id, 100)
|
||||||
self.r.set
|
self.r.set(user_id, u.balance)
|
||||||
return self.data[user_id]
|
return u
|
||||||
|
|
||||||
def save(self):
|
def update(self, u: User):
|
||||||
data = {}
|
self.r.set(u.user_id, u.balance)
|
||||||
for k in self.data:
|
|
||||||
data[k] = self.data[k].to_dict()
|
|
||||||
self.r.set('data', dumps(data, indent=2))
|
|
||||||
@@ -17,14 +17,13 @@ async def on_ready():
|
|||||||
user = aura.get(str(member.id))
|
user = aura.get(str(member.id))
|
||||||
if user==None:
|
if user==None:
|
||||||
aura.add(str(member.id))
|
aura.add(str(member.id))
|
||||||
aura.save()
|
|
||||||
print(await tree.sync())
|
print(await tree.sync())
|
||||||
|
|
||||||
@client.event
|
@client.event
|
||||||
async def on_message(msg: discord.Message):
|
async def on_message(msg: discord.Message):
|
||||||
user = aura.get(str(msg.author.id))
|
user = aura.get(str(msg.author.id))
|
||||||
user.balance += 3
|
user.balance += 3
|
||||||
aura.save()
|
aura.update(user)
|
||||||
|
|
||||||
@client.event
|
@client.event
|
||||||
async def on_member_join(member: discord.Member):
|
async def on_member_join(member: discord.Member):
|
||||||
@@ -36,7 +35,6 @@ async def on_member_join(member: discord.Member):
|
|||||||
|
|
||||||
@tree.command(name='aura', description='Check the amount of aura a member has')
|
@tree.command(name='aura', description='Check the amount of aura a member has')
|
||||||
async def get_aura(interaction: discord.Interaction, member: discord.Member = None):
|
async def get_aura(interaction: discord.Interaction, member: discord.Member = None):
|
||||||
aura.load()
|
|
||||||
if member == None:
|
if member == None:
|
||||||
member = interaction.user
|
member = interaction.user
|
||||||
user = aura.get(str(member.id))
|
user = aura.get(str(member.id))
|
||||||
@@ -45,7 +43,6 @@ async def get_aura(interaction: discord.Interaction, member: discord.Member = No
|
|||||||
|
|
||||||
@tree.command(name='send', description='Send aura to a member')
|
@tree.command(name='send', description='Send aura to a member')
|
||||||
async def send(interaction: discord.Interaction, to: discord.Member, amount: int, reason: str = ""):
|
async def send(interaction: discord.Interaction, to: discord.Member, amount: int, reason: str = ""):
|
||||||
aura.load()
|
|
||||||
user = aura.get(str(interaction.user.id))
|
user = aura.get(str(interaction.user.id))
|
||||||
user_to = aura.get(str(to.id))
|
user_to = aura.get(str(to.id))
|
||||||
if amount < 0:
|
if amount < 0:
|
||||||
@@ -61,13 +58,14 @@ async def send(interaction: discord.Interaction, to: discord.Member, amount: int
|
|||||||
description=f'**By: {interaction.user.name}\nAmount: {amount}\nReason: {reason}**'
|
description=f'**By: {interaction.user.name}\nAmount: {amount}\nReason: {reason}**'
|
||||||
))
|
))
|
||||||
await interaction.response.send_message(f'Punished! You gained 10+ aura!', ephemeral=True)
|
await interaction.response.send_message(f'Punished! You gained 10+ aura!', ephemeral=True)
|
||||||
aura.save()
|
|
||||||
else:
|
else:
|
||||||
await interaction.response.send_message(f'Cannot punish. {to.name} only has {user_to.balance} aura!', ephemeral=True)
|
await interaction.response.send_message(f'Cannot punish. {to.name} only has {user_to.balance} aura!', ephemeral=True)
|
||||||
return
|
return
|
||||||
if user.balance >= 10:
|
if user.balance >= 10:
|
||||||
user.balance -= 10
|
user.balance -= 10
|
||||||
await interaction.response.send_message(f'Cannot punish. You are not a developer.{" -10 aura!" if user.balance>=10 else""}', ephemeral=True)
|
await interaction.response.send_message(f'Cannot punish. You are not a developer.{" -10 aura!" if user.balance>=10 else""}', ephemeral=True)
|
||||||
|
aura.update(user)
|
||||||
|
aura.update(user_to)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
if user.balance >= amount:
|
if user.balance >= amount:
|
||||||
@@ -79,7 +77,8 @@ async def send(interaction: discord.Interaction, to: discord.Member, amount: int
|
|||||||
description=f'**From: {interaction.user.name}\nAmount: {amount}**'
|
description=f'**From: {interaction.user.name}\nAmount: {amount}**'
|
||||||
))
|
))
|
||||||
await interaction.response.send_message(f'Sent! You now have {user.balance} aura!', ephemeral=True)
|
await interaction.response.send_message(f'Sent! You now have {user.balance} aura!', ephemeral=True)
|
||||||
aura.save()
|
aura.update(user)
|
||||||
|
aura.update(user_to)
|
||||||
else:
|
else:
|
||||||
await interaction.response.send_message(f'Cannot send. You only have {user.balance} aura!', ephemeral=True)
|
await interaction.response.send_message(f'Cannot send. You only have {user.balance} aura!', ephemeral=True)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user