added more functionalities
This commit is contained in:
parent
294bc8b355
commit
83bb0cdc6c
@ -11,26 +11,29 @@ In order to use our cog you would need to install it onto your instance of [RedB
|
|||||||
|
|
||||||
- Instance of [RedBot](https://github.com/Cog-Creators/Red-DiscordBot)
|
- Instance of [RedBot](https://github.com/Cog-Creators/Red-DiscordBot)
|
||||||
- Downloader cog has to be loaded. to load:
|
- Downloader cog has to be loaded. to load:
|
||||||
```[Prefix]load downloader```
|
`[Prefix]load downloader`
|
||||||
|
|
||||||
## How to install & load:
|
## How to install & load:
|
||||||
|
|
||||||
1. ```[PREFIX]repo add [RepoName] https://github.com/Kanium/KaniumCogs [ActiveBranch (EX: Master)] ```
|
1. `[PREFIX]repo add [RepoName] https://github.com/Kanium/KaniumCogs [ActiveBranch (EX: Master)] `
|
||||||
2. ```[PREFIX]cog install [RepoName] welcomeCog```
|
2. `[PREFIX]cog install [RepoName] welcomeCog`
|
||||||
3. ```[PREFIX]load welcomeCog```
|
3. `[PREFIX]load welcomeCog`
|
||||||
|
|
||||||
### To update the Cog:
|
### To update the Cog:
|
||||||
- ```[PREFIX]cog uninstall welcomeCog```
|
- `[PREFIX]cog uninstall welcomeCog`
|
||||||
- ```[PREFIX]repo update [RepoName]```
|
- `[PREFIX]repo update [RepoName]`
|
||||||
- ```[PREFIX]cog install [RepoName] welcomeCog```
|
- `[PREFIX]cog install [RepoName] welcomeCog`
|
||||||
- ```[PREFIX]load welcomeCog```
|
- `[PREFIX]load welcomeCog`
|
||||||
|
|
||||||
### Commands
|
### Commands
|
||||||
- ```[PREFIX]welcomepreview``` - sends in the chat a preview of the template message
|
- `[PREFIX]welcomepreview` - sends in the chat a preview of the template message
|
||||||
- ```[PREFIX]pullmessage``` - allows you to pull the latest version of your message without restarting the bot
|
- `[PREFIX]pullmessage` - allows you to pull the latest version of your message without restarting the bot
|
||||||
- ```[PREFIX]channel``` - allows you to select a channel in your discord to dump logs to
|
- `[PREFIX]channel` - allows you to select a channel in your discord to dump logs to
|
||||||
- ```[PREFIX]stats``` - prints the statistics that the cog has gathered.
|
- `[PREFIX]stats` - prints the statistics that the cog has gathered.
|
||||||
- ```[PREFIX]resetstats``` - allows for a hard reset of the stats
|
- `[PREFIX]resetstats` - allows for a hard reset of the stats
|
||||||
|
- `[PREFIX]toggleLogs` - Toggles the logs functionality on or off
|
||||||
|
- `[PREFIX]stopScheduler` - Stops the daily reset scheduler
|
||||||
|
- `[PREFIX]startScheduler` - Starts the daily reset scheduler
|
||||||
|
|
||||||
### To modify the sent message:
|
### To modify the sent message:
|
||||||
|
|
||||||
|
|||||||
@ -24,14 +24,8 @@ class WelcomeCog(commands.Cog):
|
|||||||
self.totalLeftCount: int = 0
|
self.totalLeftCount: int = 0
|
||||||
self.totalLogs: int = 0
|
self.totalLogs: int = 0
|
||||||
self.toggleLogs: bool = True
|
self.toggleLogs: bool = True
|
||||||
self.bot.loop.create_task(WelcomeCog.countReset(self))
|
self.scheduler: bool = False
|
||||||
|
self.task = None
|
||||||
@staticmethod
|
|
||||||
async def countReset(obj):
|
|
||||||
while True:
|
|
||||||
obj.dailyJoinedCount = 0
|
|
||||||
obj.dailyLeftCount = 0
|
|
||||||
await asyncio.sleep(86400)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def fetchMessage():
|
async def fetchMessage():
|
||||||
@ -68,6 +62,12 @@ class WelcomeCog(commands.Cog):
|
|||||||
name="Welcome", value='Welcome To Kanium !', inline=True)
|
name="Welcome", value='Welcome To Kanium !', inline=True)
|
||||||
return message
|
return message
|
||||||
|
|
||||||
|
async def countReset(self):
|
||||||
|
while True:
|
||||||
|
self.dailyJoinedCount = 0
|
||||||
|
self.dailyLeftCount = 0
|
||||||
|
await asyncio.sleep(86400)
|
||||||
|
|
||||||
@commands.command(name='pullmessage', description='pulls the message from github again')
|
@commands.command(name='pullmessage', description='pulls the message from github again')
|
||||||
@commands.has_any_role(*admin_roles)
|
@commands.has_any_role(*admin_roles)
|
||||||
async def pullMessage(self, ctx: commands.Context) -> None:
|
async def pullMessage(self, ctx: commands.Context) -> None:
|
||||||
@ -132,6 +132,42 @@ class WelcomeCog(commands.Cog):
|
|||||||
|
|
||||||
await ctx.send('Successfully reset the statistics')
|
await ctx.send('Successfully reset the statistics')
|
||||||
|
|
||||||
|
@commands.command(name='toggleLogs', description='Toggles the logs functionality on or off')
|
||||||
|
@commands.has_any_role(*admin_roles)
|
||||||
|
async def toggleLogs(self, ctx: commands.Context) -> None:
|
||||||
|
await ctx.trigger_typing()
|
||||||
|
self.toggleLogs = not self.toggleLogs
|
||||||
|
await ctx.send('Logging functionality is `ON`' if self.toggleLogs else 'Logging functionality is `OFF`')
|
||||||
|
|
||||||
|
@commands.command(name='stopscheduler', description='Stops the daily reset scheduler')
|
||||||
|
@commands.has_any_role(*admin_roles)
|
||||||
|
async def stopScheduler(self, ctx: commands.Context) -> None:
|
||||||
|
await ctx.trigger_typing()
|
||||||
|
|
||||||
|
if not self.scheduler:
|
||||||
|
await ctx.send('Scheduler is already `OFF`')
|
||||||
|
return
|
||||||
|
print('before', len(asyncio.all_tasks()))
|
||||||
|
self.scheduler = False
|
||||||
|
self.task.cancel()
|
||||||
|
self.task = None
|
||||||
|
print('after', len(asyncio.all_tasks()))
|
||||||
|
await ctx.send('Scheduler has been turned `OFF`')
|
||||||
|
|
||||||
|
@commands.command(name='startscheduler', description='Starts the daily reset scheduler')
|
||||||
|
@commands.has_any_role(*admin_roles)
|
||||||
|
async def startScheduler(self, ctx: commands.Context) -> None:
|
||||||
|
await ctx.trigger_typing()
|
||||||
|
|
||||||
|
if self.scheduler:
|
||||||
|
await ctx.send('Scheduler is already `ON`')
|
||||||
|
return
|
||||||
|
print('before', len(asyncio.all_tasks()))
|
||||||
|
self.scheduler = True
|
||||||
|
self.task = self.bot.loop.create_task(self.countReset())
|
||||||
|
print('after', len(asyncio.all_tasks()))
|
||||||
|
await ctx.send('Scheduler has been turned `ON`')
|
||||||
|
|
||||||
@commands.Cog.listener()
|
@commands.Cog.listener()
|
||||||
async def on_member_join(self, member: discord.Member) -> None:
|
async def on_member_join(self, member: discord.Member) -> None:
|
||||||
try:
|
try:
|
||||||
@ -142,7 +178,7 @@ class WelcomeCog(commands.Cog):
|
|||||||
message = WelcomeCog.formatMessage(self.message)
|
message = WelcomeCog.formatMessage(self.message)
|
||||||
await member.send(content=None, embed=message)
|
await member.send(content=None, embed=message)
|
||||||
if self.channel in member.guild.channels and self.toggleLogs:
|
if self.channel in member.guild.channels and self.toggleLogs:
|
||||||
await self.channel.send('{0} - has joined the server'.format(member))
|
await self.channel.send('>>> @{0} - has joined the server'.format(member))
|
||||||
self.totalJoinedCount += 1
|
self.totalJoinedCount += 1
|
||||||
self.dailyJoinedCount += 1
|
self.dailyJoinedCount += 1
|
||||||
self.totalLogs += 1
|
self.totalLogs += 1
|
||||||
@ -154,7 +190,7 @@ class WelcomeCog(commands.Cog):
|
|||||||
async def on_member_remove(self, member: discord.Member) -> None:
|
async def on_member_remove(self, member: discord.Member) -> None:
|
||||||
try:
|
try:
|
||||||
if self.channel in member.guild.channels and self.toggleLogs:
|
if self.channel in member.guild.channels and self.toggleLogs:
|
||||||
await self.channel.send('{0} - has left the server'.format(member))
|
await self.channel.send('>>> @{0} - has left the server'.format(member))
|
||||||
self.totalLeftCount += 1
|
self.totalLeftCount += 1
|
||||||
self.dailyLeftCount += 1
|
self.dailyLeftCount += 1
|
||||||
self.totalLogs += 1
|
self.totalLogs += 1
|
||||||
@ -165,10 +201,8 @@ class WelcomeCog(commands.Cog):
|
|||||||
@commands.Cog.listener()
|
@commands.Cog.listener()
|
||||||
async def on_member_ban(self, guild: discord.Guild, member: discord.Member) -> None:
|
async def on_member_ban(self, guild: discord.Guild, member: discord.Member) -> None:
|
||||||
try:
|
try:
|
||||||
if not self.channel in member.guild.channels:
|
if self.channel in member.guild.channels and self.toggleLogs:
|
||||||
print('{0} - has been banned from the server'.format(member))
|
await self.channel.send('>>> @{0} - has been banned from the server'.format(member))
|
||||||
return
|
|
||||||
await self.channel.send('{0} - has been banned from the server'.format(member))
|
|
||||||
self.totalLogs += 1
|
self.totalLogs += 1
|
||||||
except (discord.NotFound, discord.Forbidden):
|
except (discord.NotFound, discord.Forbidden):
|
||||||
print(
|
print(
|
||||||
@ -177,10 +211,8 @@ class WelcomeCog(commands.Cog):
|
|||||||
@commands.Cog.listener()
|
@commands.Cog.listener()
|
||||||
async def on_member_ban(self, guild: discord.Guild, member: discord.Member) -> None:
|
async def on_member_ban(self, guild: discord.Guild, member: discord.Member) -> None:
|
||||||
try:
|
try:
|
||||||
if not self.channel in member.guild.channels:
|
if self.channel in member.guild.channels and self.toggleLogs:
|
||||||
print('{0} - has been unbanned from the server'.format(member))
|
await self.channel.send('>>> @{0} - has been unbanned from the server'.format(member))
|
||||||
return
|
|
||||||
await self.channel.send('{0} - has been unbanned from the server'.format(member))
|
|
||||||
self.totalLogs += 1
|
self.totalLogs += 1
|
||||||
except (discord.NotFound, discord.Forbidden):
|
except (discord.NotFound, discord.Forbidden):
|
||||||
print(
|
print(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user