11 Commits
v2.1 ... i18n

8 changed files with 57 additions and 26 deletions

9
.gitignore vendored
View File

@@ -163,4 +163,11 @@ cython_debug/
.history/ .history/
# Built Visual Studio Code Extensions # Built Visual Studio Code Extensions
*.vsix *.vsix
# Project
venv
venv_linux
venv_windows
config.json

View File

@@ -26,8 +26,9 @@ Installation instructions are listed below. Please, make sure you have installed
1. `git clone https://git.end-play.xyz/profitroll/YusarinBot` 1. `git clone https://git.end-play.xyz/profitroll/YusarinBot`
2. `cd YusarinBot` 2. `cd YusarinBot`
3. `pip install -r requirements.txt` 3. `pip install -r requirements.txt`
4. `nano config.json` 4. `cp config_example.json config.json`
5. `python yusarin.py` 5. `nano config.json`
6. `python yusarin.py`
## Installation (Detailed) ## Installation (Detailed)
@@ -42,9 +43,10 @@ Installation instructions are listed below. Please, make sure you have installed
9. You can rename it however you want, set needed descriptions etc 9. You can rename it however you want, set needed descriptions etc
10. Go to "Bot" tab and enable application as bot 10. Go to "Bot" tab and enable application as bot
11. Copy token of your bot 11. Copy token of your bot
12. Open file `config.json` with your favorite text editor and paste your token as value of "bot_token" key 12. Copy `config_example.json` to `config.json`
13. Copy your own Discord ID and paste it as value of "owner" key (How to get ID: <https://support.playhive.com/discord-user-id/>) 13. Open file `config.json` with your favorite text editor and paste your token as value of "bot_token" key
14. Bot is ready! Run it using `python yusarin.py` 14. Copy your own Discord ID and paste it as value of "owner" key (How to get ID: <https://support.playhive.com/discord-user-id/>)
15. Bot is ready! Run it using `python yusarin.py`
## Config explanation ## Config explanation

View File

@@ -9,6 +9,7 @@ from discord import (
utils, utils,
) )
from discord.ext import commands from discord.ext import commands
from discord.abc import GuildChannel
from functions import ( from functions import (
appendLog, appendLog,
@@ -32,6 +33,11 @@ class CogChannel(commands.Cog):
def __init__(self, client): def __init__(self, client):
self.client = client self.client = client
@commands.Cog.listener()
async def on_guild_channel_delete(self, channel: GuildChannel):
if isUserVoice(channel):
await removeUserVoice(channel)
@Cog.listener() @Cog.listener()
async def on_voice_state_update( async def on_voice_state_update(
self, member: Member, before: VoiceState, after: VoiceState self, member: Member, before: VoiceState, after: VoiceState
@@ -44,14 +50,15 @@ class CogChannel(commands.Cog):
# If user left vc # If user left vc
if before.channel is not None and len(before.channel.members) == 0: if before.channel is not None and len(before.channel.members) == 0:
if isUserVoice(vc_from): if isUserVoice(vc_from):
if isVoiceOfUser(vc_from, member): if not isVoiceOfUser(vc_from, member):
await removeUserVoice(vc_from)
else:
if loadJson("config.json")["enable_nomic"]: if loadJson("config.json")["enable_nomic"]:
await changeNomicPerms("deny", vc_from, member) await changeNomicPerms("deny", vc_from, member)
await removeUserVoice(vc_from)
# If user joined vc # If user joined vc
if after.channel is not None and after.channel.id == guildConfGet(member.guild, "channel"): if after.channel is not None and after.channel.id == guildConfGet(
member.guild, "channel"
):
if isUserVoice(vc_to): if isUserVoice(vc_to):
if loadJson("config.json")["enable_nomic"]: if loadJson("config.json")["enable_nomic"]:
await changeNomicPerms("allow", vc_to, member) await changeNomicPerms("allow", vc_to, member)

View File

@@ -253,31 +253,45 @@ async def removeUserVoice(vc: VoiceChannel) -> None:
nomic_channel = utils.get(vc.guild.channels, id=vc_conf["nomic"]) nomic_channel = utils.get(vc.guild.channels, id=vc_conf["nomic"])
remove(vc_file) remove(vc_file)
await needed_channel.delete() if needed_channel is None:
if debug:
appendLog(
f"Removed voice channel '{needed_channel}' ({str(needed_channel.id)}) of user with id {str(vc_conf['ownerid'])}",
guild=vc.guild,
)
else:
appendLog( appendLog(
f"Removed voice channel '{needed_channel}' of user with id {str(vc_conf['ownerid'])}", f"Removed voice channel '{needed_channel}' of user with id {str(vc_conf['ownerid'])}",
guild=vc.guild, guild=vc.guild,
) )
else:
await needed_channel.delete()
if loadJson("config.json")["enable_nomic"]:
await nomic_channel.delete()
if debug: if debug:
appendLog( appendLog(
f"Removed nomic channel {nomic_channel} ({str(nomic_channel.id)}) of channel with id {str(needed_channel.id)}", f"Removed voice channel '{needed_channel}' ({str(needed_channel.id)}) of user with id {str(vc_conf['ownerid'])}",
guild=vc.guild, guild=vc.guild,
) )
else: else:
appendLog(
f"Removed voice channel '{needed_channel}' of user with id {str(vc_conf['ownerid'])}",
guild=vc.guild,
)
if loadJson("config.json")["enable_nomic"]:
if nomic_channel is None:
appendLog( appendLog(
f"Removed nomic channel '{nomic_channel}' of channel with id {str(needed_channel.id)}", f"Removed nomic channel '{nomic_channel}' of channel with id {str(needed_channel.id)}",
guild=vc.guild, guild=vc.guild,
) )
else:
await nomic_channel.delete()
if debug:
appendLog(
f"Removed nomic channel '{nomic_channel}' ({str(nomic_channel.id)}) of channel with id {str(needed_channel.id)}",
guild=vc.guild,
)
else:
appendLog(
f"Removed nomic channel '{nomic_channel}' of channel with id {str(needed_channel.id)}",
guild=vc.guild,
)
else: else:
return return

View File

@@ -1,2 +1,2 @@
ujson==5.7.0 ujson==5.8.0
py-cord[speed]==2.4.1 py-cord[speed]==2.4.1

View File

@@ -1,2 +1,2 @@
py-cord==2.4.1 py-cord==2.4.1
requests==2.29.0 requests==2.31.0

View File

@@ -7,15 +7,16 @@ except Exception as exp:
) )
exit() exit()
from os import getpid from os import getpid, path
from functions import * from functions import *
pid = getpid() pid = getpid()
version = 2.1 version = 2.3
if ( if (
loadJson("config.json")["owner"] == "SET-OWNER-ID" not path.exists("config.json")
or loadJson("config.json")["owner"] == "SET-OWNER-ID"
or loadJson("config.json")["bot_token"] == "SET-BOT-TOKEN" or loadJson("config.json")["bot_token"] == "SET-BOT-TOKEN"
): ):
print( print(