我如何制作 discord.py 机器人 运行 24/7 但仍然能够对其进行编辑?
How do i make a discord.py bot run 24/7 but still be able to edit it?
我一直无法找到一种方法来部署机器人并使其 运行 24/7 全天候工作,同时仍然能够编辑机器人并保存更改。我看过 0 个教我如何做到这一点的视频。有人可以告诉我怎么做吗?
您可以使用 cogs,它允许您加载、卸载和重新加载扩展。因此,您需要做的就是更改此齿轮,然后重新加载它,以使更改生效。
https://discordpy.readthedocs.io/en/stable/ext/commands/api.html?#cogs
要托管机器人,您可以使用 heroku,每次更改内容时,您都可以像使用 git 存储库一样推送它。
在 heroku 上托管的参考:
https://www.youtube.com/watch?v=BPvg9bndP1U
关于 24 小时的编辑,你应该看看使用 cogs。
import os
import discord
from discord.ext import commands
from discord.ext.commands import Context
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv())
BOT_TOKEN = os.getenv("BOT_TOKEN")
client = commands.Bot(command_prefix='.')
@client.command()
async def load(ctx: Context, extension):
client.load_extension(f'cogs.{extension}')
await ctx.send("Loaded Cog")
@client.command()
async def unload(ctx: Context, extension):
client.unload_extension(f'cogs.{extension}')
await ctx.send("Unloaded Cog")
@client.command()
async def reload(ctx: Context, extension):
client.unload_extension(f'cogs.{extension}')
client.load_extension(f'cogs.{extension}')
await ctx.send("Reloaded Cog")
for filename in os.listdir('./cogs'):
if filename.endswith('.py'):
client.load_extension(f'cogs.{filename[0:-3]}')
client.run(BOT_TOKEN)
理想情况下,这应该是您的 bot.py 并创建一个名为 cogs 的文件夹。 load 和 unload 命令可以让你删除和添加任何文件,所以假设有一个重大错误,你可以卸载它,然后修复它,然后加载它,这样人们就可以再次使用它。请记住,您只是在装卸齿轮。当您编辑齿轮但不想更改它时,重新加载很有用。所以你可以保存然后重新加载扩展。
因此,创建一个名为 cogs 的文件,并在文件夹 cogs 中作为示例脚本:
import discord
from discord.ext import commands
class Test(commands.Cog):
def __init__(self, client):
self.client = client
@commands.command()
async def ping(self, ctx):
ctx.send("pong")
def setup(client):
client.add_cog(Test(client))
现在,如果您最初 运行 它会自动加载所有 cog,因为在第一个加载所有 cog 的脚本中有一个 for 循环。它调用了设置,它加载了 cog.Now 说您更改了消息,您所要做的就是更改它并保存。接下来转到服务器并键入命令说前缀是“。” .reload 测试。如果您使用 heroku,请确保推送更改。
我是如何学习齿轮的:
https://www.youtube.com/watchv=vQw8cFfZPx0&list=PLW3GfRiBCHOhfVoiDZpSz8SM_HybXRPzZ&index=7
我一直无法找到一种方法来部署机器人并使其 运行 24/7 全天候工作,同时仍然能够编辑机器人并保存更改。我看过 0 个教我如何做到这一点的视频。有人可以告诉我怎么做吗?
您可以使用 cogs,它允许您加载、卸载和重新加载扩展。因此,您需要做的就是更改此齿轮,然后重新加载它,以使更改生效。
https://discordpy.readthedocs.io/en/stable/ext/commands/api.html?#cogs
要托管机器人,您可以使用 heroku,每次更改内容时,您都可以像使用 git 存储库一样推送它。 在 heroku 上托管的参考: https://www.youtube.com/watch?v=BPvg9bndP1U
关于 24 小时的编辑,你应该看看使用 cogs。
import os
import discord
from discord.ext import commands
from discord.ext.commands import Context
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv())
BOT_TOKEN = os.getenv("BOT_TOKEN")
client = commands.Bot(command_prefix='.')
@client.command()
async def load(ctx: Context, extension):
client.load_extension(f'cogs.{extension}')
await ctx.send("Loaded Cog")
@client.command()
async def unload(ctx: Context, extension):
client.unload_extension(f'cogs.{extension}')
await ctx.send("Unloaded Cog")
@client.command()
async def reload(ctx: Context, extension):
client.unload_extension(f'cogs.{extension}')
client.load_extension(f'cogs.{extension}')
await ctx.send("Reloaded Cog")
for filename in os.listdir('./cogs'):
if filename.endswith('.py'):
client.load_extension(f'cogs.{filename[0:-3]}')
client.run(BOT_TOKEN)
理想情况下,这应该是您的 bot.py 并创建一个名为 cogs 的文件夹。 load 和 unload 命令可以让你删除和添加任何文件,所以假设有一个重大错误,你可以卸载它,然后修复它,然后加载它,这样人们就可以再次使用它。请记住,您只是在装卸齿轮。当您编辑齿轮但不想更改它时,重新加载很有用。所以你可以保存然后重新加载扩展。 因此,创建一个名为 cogs 的文件,并在文件夹 cogs 中作为示例脚本:
import discord
from discord.ext import commands
class Test(commands.Cog):
def __init__(self, client):
self.client = client
@commands.command()
async def ping(self, ctx):
ctx.send("pong")
def setup(client):
client.add_cog(Test(client))
现在,如果您最初 运行 它会自动加载所有 cog,因为在第一个加载所有 cog 的脚本中有一个 for 循环。它调用了设置,它加载了 cog.Now 说您更改了消息,您所要做的就是更改它并保存。接下来转到服务器并键入命令说前缀是“。” .reload 测试。如果您使用 heroku,请确保推送更改。 我是如何学习齿轮的: https://www.youtube.com/watchv=vQw8cFfZPx0&list=PLW3GfRiBCHOhfVoiDZpSz8SM_HybXRPzZ&index=7