关於cog,当指令越写越多的时候,可以运用Cog的架构。
Cog可以视为一个extension,也就是说可以取出来(可以取出来也代表可以拿出来),这就代表在开发的时候可以不用一值将bot开开关关
我们先使用!help
有load、unload、reload,让你方便管理
# cogs/loadReload.py
import discord
from discord.ext import commands
from core.any import Cog_Extension
import json, os
with open('items.json', 'r', encoding='utf8') as file:
data = json.load(file)
class reloadCogs(Cog_Extension):
@commands.command()
@commands.is_owner() # 管理者才能使用
async def load(self, ctx, extension):
self.bot.load_extension(f'cogs.{extension}')
await ctx.author.send(f"{extension} 已上传")
@commands.command()
@commands.is_owner()
async def unload(self, ctx, extension):
self.bot.unload_extension(f'cogs.{extension}')
await ctx.author.send(f'{extension} 已卸载')
@commands.command()
@commands.is_owner()
async def reload(self, ctx, extension):
# 如果直接更改程序码的话就直接reload
self.bot.reload_extension(f'cogs.{extension}')
await ctx.author.send(f'{extension} 已更新')
def setup(bot):
bot.add_cog(reloadCogs(bot))
# cogs/ahoy.py
from discord.ext import commands
import discord
from discord.ext.commands import bot
from core.any import Cog_Extension
import json
with open('./items.json', "r", encoding = "utf8") as file:
data = json.load(file)
class Ahoy(Cog_Extension):
@commands.command(pass_context = True)
async def ahoy(self, ctx):
await ctx.send(file = discord.File('your gif or picture'))
def setup(bot):
bot.add_cog(Ahoy(bot))
{
"token":"your token",
"自订":"your gif or picture"
}
await ctx.send(file = discord.File(data["自订"]))
自己写也可以,我们必须写好title、description......等
# cogs/embeds.py
# 略
@commands.command(pass_context = True)
async def helping(ctx):
sms = discord.Embed(title = "指令",
description = "'忘记了吗? 来看一下吧~~", color = 0x4599)
await ctx.send(embed = sms)
# 略
示意图
接下来自行使用add_field()函数,添加中心骨干
sms.add_field(name = "!ahoy", value = "Ahoy.gif", inline = True)
sms.add_field(name = "!clear", value = "用 !clear + 数字删讯息", inline = True)
sms.add_field(name = "!sms", value = "等於 == !help", inline = True)
# url可以放在json档
sms.set_thumbnail(url = "https://www.formula-ai.com/wp-content/uploads/2020/09/python_or_java_meme.jpg")
小弟是深度学习方面新手 最近想试试图像辨识但遇到了难题 我想辨认的三种东西分别是lad, lcx, ...
网页的外观和操作本质上还是和原生的有差异但可以透过配置来让体验更接近。 全萤幕模式 视觉设计 事件操...
原本想说都最後一天了,就写个心得就好了ㄅ,但是同学突然问我要不要写写看魔方阵,引起我的好奇心想说试试...
今天会来说明 TypeScript 中内建 ReturnType 和 Parameters 的原始...
没有错,最近发生了一些事情,让我想要跟我的读者讲讲这些事情,这些我觉得很重要的事情XD((虽然好像...