🧲

【jishaku】discord botでpythonのコマンドを実行する方法

2023/06/28に公開

今回は、discord.pyのbotで、pythonのコマンドやコードを動かす方法を紹介していきます!

では、まず、以下のコマンドを実行してください。
pip install jishaku
できない場合は
py -m pip install jishaku
を実行してください。
discord.pyは以下のコマンドで入れられます。
py -m pip install discord.py
そしたら、メモ帳などを開いてください。(僕は今VScode持ってないのでIDLEを使います。)

botを作成する方法

https://discord.com/developers/applications
上のサイトにアクセスします。
こんな画面になると思うので、New Applicationをクリックします。

そしたら、こんな画面が出てくるので、
NAMEにbot名を入力して、Createをクリックします。


botというところをクリックして、右側の画面にボタンが出てくるので、それを押します。

そしたら、上の画面のようになるので、Reset tokenを押します。
そして出てきた文字列をコピーします。

作っていく

そしたら、以下のコードを入力します。

import discord  
from discord.ext import commands  
from jishaku.features.python import PythonFeature  
from jishaku.features.root_command import RootCommand  
  
bot = commands.Bot(command_prefix='好きなプレフィクス', help_command=None) #help_command=Noneは標準のヘルプコマンドを削除する引数です。お好みに調整してください。  
TOKEN = 'ここにアクセストークン' #discordbotのログインに必要です  
  
class MyBot(commands.Bot):  
    async def is_owner(self, user: discord.User):  # jishakuはデフォルトでは任意のユーザーが任意のコマンドやコードを実行することができてしまう(恐らく)ので、ここでチェックしています。  
        if something:  
            return True  
        return await super().is_owner(user)  
  
@bot.event  
async def on_ready(): # 起動したらコンソールにログイン通知が表示されます  
    print("-----------")  
    print("起動しました")  
    print("-----------")  
  
@bot.command()  
async def loadjsk(ctx): #jishakuをロードするコマンド  
    yourID = あなたのID   
    if ctx.message.author.id == yourID or ctx.message.author.id == friendID:  
        bot.load_extension('jishaku')  
        print("success")  
        print("https://github.com/Gorialis/jishaku")  
        await ctx.send("📩`jishaku`")  
  
bot.run(TOKEN) ## Botの起動とDiscordサーバーへの接続  

コードの解説

import discord #discord.pyを読み込む  
from discord.ext import commands #プレフィクスなどを利用可能にする  
from jishaku.features.python import PythonFeature #jishakuを読み込む  
from jishaku.features.root_command import RootCommand #jishakuを読み込む  
class MyBot(commands.Bot):  
    async def is_owner(self, user: discord.User):  
        if something:  
            return True  
  
        return await super().is_owner(user)  
# このクラスを読み込むことでbot作成者のみがjishakuを利用できるようになる(推奨)  
@bot.command()  
async def loadjsk(ctx):  
    yourID = あなたのID  
    if ctx.message.author.id == yourID or ctx.message.author.id == friendID:  
        bot.load_extension('jishaku')  
        print("success")  
        print("https://github.com/Gorialis/jishaku")  
        await ctx.send("📩`jishaku`") #jishakuを読み込んだことを知らせるメッセージ  
@bot.event  
async def on_ready():  
    print("-----------")  
    print("起動しました")  
    print("-----------")  
# 起動メッセージ  

jishakuの使い方

まず、jishakuをロードします。

コマンド

簡単な計算や

エラー表示も

printももちろん実行できます。


アンロード(プレフィクスがmc!のばあい)は、
mc!jsk unload jishaku
でできます。

Discussion