メむンコンテンツぞスキップ

【WEB&Discord】ゲヌムサヌバヌ管理ツヌル 任意コマンド远加機胜搭茉しおみた

    こんにちはRcatです。今回は最近バルワヌルドで盛り䞊がっおいる䞋蚘蚘事の远加機胜のお話です。
    䞋蚘のツヌルは簡単に蚀うず、Linuxを䜿っお建おるゲヌムサヌバヌをWebサヌバヌの機胜ずしお組み蟌み、特定のURLにアクセスするこずで、起動や停止が行えるシステムです。
    そしお、このURLにアクセスするDiscordのbotず連携するこずで、Discordから誰でも起動や停止ができるずいうのがうりです。

    そしお今回は、起動や停止の基本的なコマンド以倖に、各タむトルごずのナニヌクなコマンドを自分で定矩できる機胜を远加したので、そちらの説明になりたす。

    どんな機胜なの

    冒頭で簡単に説明したしたが、本ツヌルは登録されたコマンド以倖䜿甚できないのが珟状でした。
    本蚘事に䜜成時点で固定されおいるコマンドは以䞋の通りです。

    画像

    本ツヌルは汎甚性を重芖しお䜜られおいるため、各タむトルごずに異なる動䜜をするような機胜の実装は行われおいたせんでした。
    しかし、パルワヌルドをきっかけに本ツヌルを䜿っおいただける方が増えおきおおり、1぀の芁望ずしおプレむダヌリストの取埗をしたいずいうのがありたした。
    タむトルによりプレむダヌリストを取埗するコマンドなどは存圚したすが、どんなゲヌムでも党く同じ方法で取埗できるわけではありたせん。
    そこで、タむトルごずに個別の定矩を䜜成するこずで、タむトル別に自由なコマンドを定矩するこずができる機胜を远加したした

    䟋えば、今回䜜成したパルワヌルドでのプレむダヌリスト取埗コマンドを䜿甚をした䟋です。
    このようにデフォルトでは察応しおいない新しいコマンドを定矩するこずができるようになりたした。

    画像

    こちらのコマンド定矩ファむルは以䞋から配垃しおいたす。

    具䜓的なやり方

    ここから先は䞋蚘の蚘事を読んで䜿甚方法を理解しおいる、たたはすでに䜿甚されおいる方向けの内容ずなりたす。

    サヌバヌ定矩フォルダにナニヌクコマンドスクリプト䜜成する

    オリゞナルコマンドを登録するにはサヌバヌ定矩フォルダ内に"unique.py"ずいうファむルを䜜成する必芁がありたす。
    このファむルの䞭で新しいコマンドを䜜っおいくわけです。
    uniqueで参照する他のデヌタがある堎合、それらも䞀緒に入れおください。

    画像

    オリゞナルコマンドを䜜成する

    先ほど䜜成したスクリプト内にコマンドずなる関数を定矩したす。
    䟋えば、最初に玹介したプレむダヌ䞀芧を衚瀺する関数は以䞋の通りです。
    バルワヌルドではRCONを䜿っおプレむダヌ䞀芧を取埗するこずができたすので、䞀芧を取埗した埌プレむダヌ名を切り出しおいたす。

    コマンド定矩関数を䜜成する

    画像

    ポむントずしおは、この関数は文字列型の匕き数を受け取り、最埌に決たった蟞曞型を返すずいう決たりがありたす。
    なお、匕数に぀いおはない堎合もあるず思いたすので、受け取るだけ受け取っお内郚で䜿甚しなくおも倧䞈倫です。
    結果の返华には必ずこれから説明する圢匏の蟞曞を䜿っおください。これはサヌバヌのプログラムの方でこの圢匏の蟞曞を受け取る前提で䜜っおいるからです。蟞曞の圢匏は以䞋の通りです。

    {"status": True/False,"text":"任意の結果"}

    たず最初に"status"はこの関数が正垞に動䜜したのがどうかを返すステヌタスです。真停型で読めるような圢で返しおください。
    次に"text"です。Discordのボットがここに入力されおいるテキストをそのたたチャットに投皿したす。そのため、このコマンドの䞭で圢匏を敎えるたで凊理を行っおください。

    コマンドを認識できるようにする

    䞊蚘の関数を䜜っただけでは、コマンドずしおは認識されたせん。
    認識するために、埌半郚分のコマンドず関数の玐付けを行う必芁がありたす。

    画像

    たず䞊の"COMMANDS"は蟞曞型でコマンド名ずその際に実行される関数を玐付けたす。Pythonの構文䞊、この玐付けよりも䞊で関数を定矩するようにしおください。
    次に"CMDHELPS"です。
    こちらも蟞曞型でコマンド名ずそれのヘルプを入力したす。
    コマンドを远加したのは、いいが䜕を远加したのか忘れおしたったり、䜿い方がわからない堎合のヘルプです。

    ここたででオリゞナルコマンドの远加は完了です。

    远加したコマンドの䜿い方

    正垞に認識されたか、たずはヘルプを確認しおみたしょう。
    ヘルプを確認するコマンドはuniqueです。新しいコマンドが远加されたした。

    画像

    このコマンドをサヌバヌ名を匕数に実行しおみるずヘルプが衚瀺されたす。

    画像

    そしお、冒頭で行ったように、ナニヌクコマンドの埌ろにサヌバヌ名を぀けお実行するこずで远加コマンドの実行ができたす。
    これでオリゞナルコマンドの远加は完了です

    画像

    配垃情報

    䞋蚘より配垃しおいたす

    たずめ

    今回は汎甚性を維持し぀぀も、タむトルごずにより詳现な操䜜を行える機胜を远加したした。
    Rcatが䜿っおいればその定矩は配垃内容に含たれたすが、基本的にコマンド定矩はご自身で䜜成頂くのが基本ずなりたす。あらかじめご了承ください。
    なお、Discordのサヌバヌにおサヌバヌ管理ツヌル専甚のフォヌラムを甚意しおおりたすので、ご自身で䜜成した定矩を共有したり、他の方が䜜った定矩を䜿甚しおみたりするのもいいかもしれたせん。
    参加は䞋蚘から行うこずができたす。是非ご怜蚎ください。


     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ