/ commands / nick.py
nick.py
 1  import discord
 2  from discord import app_commands
 3  
 4  from exaroton import add_to_whitelist, remove_from_whitelist
 5  from storage import load_data, save_data
 6  
 7  
 8  def register(tree):
 9      @tree.command(name="nick", description="Whitelist nickini değiştirir.")
10      @app_commands.describe(new_nick="Yeni Minecraft kullanıcı adın")
11      async def nick(interaction: discord.Interaction, new_nick: str):
12          await interaction.response.defer(ephemeral=True)
13          data = load_data()
14          user_id = str(interaction.user.id)
15  
16          if user_id not in data:
17              return await interaction.followup.send("Önce `/kayıt` komutu ile kayıt olmalısın.")
18  
19          for uid, info in data.items():
20              if info["username"].lower() == new_nick.lower():
21                  if uid == user_id:
22                      return await interaction.followup.send("Zaten bu nicki kullanıyorsun.")
23                  return await interaction.followup.send(f"**{new_nick}** nicki zaten başka bir kullanıcı tarafından alınmış.")
24  
25          old_nick = data[user_id]["username"]
26  
27          await remove_from_whitelist(old_nick)
28          add_result = await add_to_whitelist(new_nick)
29  
30          if not add_result.get("success"):
31              await add_to_whitelist(old_nick)
32              return await interaction.followup.send(f"Nick değiştirirken hata oluştu: {add_result.get('error', 'Bilinmeyen hata')}")
33  
34          data[user_id]["username"] = new_nick
35          save_data(data)
36          await interaction.followup.send(f"Nickin **{old_nick}** → **{new_nick}** olarak değiştirildi.")