Skip to content

Commit 25b88d6

Browse files
authored
Merge pull request #82 from HermessNRJ/main
Add per-server bot renaming feature + goubet
2 parents f09f7ad + b25a460 commit 25b88d6

2 files changed

Lines changed: 81 additions & 0 deletions

File tree

bot.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,28 @@
3030
nbprime: int = 0
3131
tgFile.close()
3232

33+
# Load server names from file
34+
def load_server_names():
35+
try:
36+
with open("txt/server_names.txt", "r") as f:
37+
lines = f.readlines()
38+
names = {}
39+
for line in lines:
40+
if ":" in line:
41+
server_id, name = line.strip().split(":", 1)
42+
names[server_id] = name
43+
return names
44+
except FileNotFoundError:
45+
return {}
46+
47+
# Save server names to file
48+
def save_server_names(server_names):
49+
with open("txt/server_names.txt", "w") as f:
50+
for server_id, name in server_names.items():
51+
f.write(f"{server_id}:{name}\n")
52+
53+
server_names = load_server_names()
54+
3355
GUILD_IDS = [
3456
410766134569074691,
3557
1193546302970146846,
@@ -53,6 +75,15 @@ async def on_ready():
5375
except Exception as e:
5476
print(f"\t- Failed for {guild_id}, reason : {e}")
5577
print("------")
78+
79+
# Apply saved names to servers
80+
for guild in bot.guilds:
81+
if str(guild.id) in server_names:
82+
try:
83+
await guild.me.edit(nick=server_names[str(guild.id)])
84+
print(f"Applied saved name '{server_names[str(guild.id)]}' to server {guild.name}")
85+
except discord.Forbidden:
86+
print(f"No permission to change nickname in server {guild.name}")
5687

5788

5889
# Get every message sent, stocked in 'message'
@@ -259,6 +290,50 @@ async def on_message(message):
259290
text = f"J'ai actuellement {str(len(dicoLines))} mots enregistrés, nickel"
260291
await channel.send(text)
261292

293+
# rename bot command (admin only)
294+
if MESSAGE.startswith("--rename "):
295+
if not message.author.guild_permissions.administrator:
296+
await channel.send("❌ Seuls les administrateurs peuvent utiliser cette commande.")
297+
return
298+
299+
new_name = message.content[9:] # Remove "--rename "
300+
if len(new_name) > 32:
301+
await channel.send("❌ Le nom ne peut pas dépasser 32 caractères.")
302+
return
303+
304+
if len(new_name) == 0:
305+
await channel.send("❌ Veuillez spécifier un nom. Usage: `--rename NouveauNom`")
306+
return
307+
308+
try:
309+
await message.guild.me.edit(nick=new_name)
310+
server_names[str(message.guild.id)] = new_name
311+
save_server_names(server_names)
312+
await channel.send(f"✅ Mon nom a été changé en '{new_name}' sur ce serveur.")
313+
print(f">>({user.name} {time.asctime()}) - A renommé le bot en '{new_name}' sur {message.guild.name}")
314+
except discord.Forbidden:
315+
await channel.send("❌ Je n'ai pas la permission de changer mon pseudo sur ce serveur.")
316+
except discord.HTTPException as e:
317+
await channel.send(f"❌ Erreur lors du changement de nom: {e}")
318+
319+
# reset bot name to default (admin only)
320+
if MESSAGE == "--resetname":
321+
if not message.author.guild_permissions.administrator:
322+
await channel.send("❌ Seuls les administrateurs peuvent utiliser cette commande.")
323+
return
324+
325+
try:
326+
await message.guild.me.edit(nick=None)
327+
if str(message.guild.id) in server_names:
328+
del server_names[str(message.guild.id)]
329+
save_server_names(server_names)
330+
await channel.send("✅ Mon nom a été remis par défaut sur ce serveur.")
331+
print(f">>({user.name} {time.asctime()}) - A remis le nom par défaut sur {message.guild.name}")
332+
except discord.Forbidden:
333+
await channel.send("❌ Je n'ai pas la permission de changer mon pseudo sur ce serveur.")
334+
except discord.HTTPException as e:
335+
await channel.send(f"❌ Erreur lors du reset du nom: {e}")
336+
262337
# begginning of reaction programs, get inspired
263338
if not MESSAGE.startswith("--"):
264339

@@ -270,6 +345,10 @@ async def on_message(message):
270345
print(f">>({user.name} {time.asctime()}) - A balancé la table")
271346
await channel.send("┬─┬ ノ( ゜-゜ノ)")
272347

348+
if MESSAGE.strip(".;,?! \"')").endswith("lucas"):
349+
print(f">>({user.name} {time.asctime()}) - A dit Lucas (goubet)")
350+
await channel.send("goubet")
351+
273352
if (MESSAGE.startswith("tu sais") or MESSAGE.startswith("vous savez")
274353
or MESSAGE.startswith("savez vous")
275354
or MESSAGE.startswith("savez-vous")
@@ -1181,6 +1260,8 @@ def check(m):
11811260
" **--isPrime** *nb* pour tester si *nb* est premier\n"
11821261
" **--prime** *nb* pour avoir la liste de tous les nombres premiers jusqu'a *nb* au minimum\n"
11831262
" **--poll** ***question***, *prop1*, *prop2*,..., *prop10* pour avoir un sondage de max 10 propositions\n"
1263+
" **--rename** *nouveau_nom* pour changer mon nom sur ce serveur (admin only)\n"
1264+
" **--resetname** pour remettre mon nom par défaut (admin only)\n"
11841265
" **--invite** pour savoir comment m'inviter\n"
11851266
"Et je risque de réagir à tes messages, parfois de manière... **Inattendue** 😈"
11861267
)

txt/server_names.txt

Whitespace-only changes.

0 commit comments

Comments
 (0)