ぴぴぶろぐ

いろいろたまにプログラミング

ブキルーレットBotをまたまた改良した&お詫び

お久しぶりです。ぴぴです。(全然更新してませんでしたあけましておめでとうございます)

 

 

先にお詫びとなりますが、4/3にBotに新機能を搭載したときにコマンド入力で想定していないサーバーへBotが変身してしまう不具合があり、把握できていないのですが何もコマンドを入力していないのにBotからメッセージが送られたサーバーがあるかと思います。それらのサーバーの管理者の方、そのサーバーに参加しているユーザーの方々に深くお詫び申し上げます。

 

 

 

この記事は以下の記事の更新版となります。

st6r.hatenablog.com

st6r.hatenablog.com

最近ブキルーレットBotがおかげさまで100サーバー以上に参加しました。本当にありがとうございます。自分が初めて人に公開したものがたくさんの人に使っていただけて感謝の気持ちでいっぱいです。

 

さて、Botが100サーバー以上参加するためにdiscordに認証していただく必要があるのですが、このBotはなぜか長い間認証が通らず、新しくサーバーに参加できない状況が続いていました。これに関しては申し訳ない気持ちでいっぱいです。(参加できない状況なのにBot関連の記事がツイッターでRTされてめちゃくちゃ申し訳なかったです。)

 

最近認証が通ってモチベが上がったのでソースコードを書きなおして新機能を追加したので新機能について、コマンド一覧を記載しておきます。

 

スプラトゥーン2のブキランダムルーレット「ブキルーレットBot」(Ver.3.0)

名前の通りスプラトゥーン2のブキのルーレットです。

サーバーに招待はこちらのリンクからhttps://discord.com/oauth2/authorize?client_id=718346812410298398&permissions=125952&scope=bot

ネット上にたくさんの同じようなBotが存在しますが、ヒーローブキが抽選の対象から外れているものが多かったのとBotを作って勉強したかったので作ったものの改良版の改良版です。

 

新機能一覧

 

4/4 新機能

一部のコマンドをコマンド入力なしでリアクションを押すだけで使えるアシスタント機能を作りました。

 

/asまたは🏠というコマンドを入力すると、以下のようにBotが反応するので、リアクションを押すとブキ1ブキ1dとコマンド一覧(/h)のコマンドがそれぞれコマンドを入力しなくても使えるようになります。

 

ブキ1はすべてのブキから1つ選ばれて結果がリアクションしたテキストチャンネルに送られるコマンドでブキ1dはすべてのブキから1つ選ばれて結果がリアクションしたDMに送られるコマンドなので、これらのコマンドを何回もルーレットを使用するときにいちいち打たなくても済むようになりました。(たまになぜか反応してくれなくなるのでその時は申し訳ありませんが/asまたは🏠を入力してやり直してください。)

f:id:st6R:20210404232346g:plain

例えば、1️⃣を押すとブキ1を入力したときと同じように

すべてのブキの中から1つ選んでくれます

 

 

12/25 一部のコマンドに対し、絵文字を送るだけで反応できるようにしました。

f:id:st6R:20201225170947p:plain

一部のコマンドは絵文字のみの入力でも反応します(画像は全ブキの中から

1つランダムで選んで返信するコマンドの例)

コマンド一覧

このBotはいくつかの機能があり、コマンドによってランダムにブキなどが選ばれて返信されます。


ブキ1または
1️⃣→全ブキの中から1つランダムで選んで返信します。

ブキ4または4️⃣→全ブキの中から4つランダムで選んで返信します。

ヒーロー1→ヒーローブキから1つランダムで選んで返信します。

シューター1

マニューバー1

チャージャー1

スロッシャー1

フデ1

ローラー1

ブラスター1

シェルター1

スピナー1

→それぞれのブキ種から1つランダムで選んで返信します。

擬似 →擬似確に必要なメイン性能の表をチャット欄に貼ってくれます。

 

以下のコマンドは結果がDMに送信されるものです。

 

ブキ1dまたは1️⃣1️⃣→全ブキの中から1つランダムで選んでDMに結果を送信します。

ヒーロー1d→ヒーローブキから1つランダムで選んでDMに結果を送信します。

シューター1d

マニューバー1d

チャージャー1d

スロッシャー1d

フデ1d

ローラー1d

ブラスター1d

シェルター1d

スピナー1d

→それぞれのブキ種から1つランダムで選んでDMに結果を送信します。

/mwまたは🧢アタマ、フク、クツのギアパワーを1つずつランダムに選びます。

 

/hまたは📖を送信すると、コマンドの一覧が表示されます。

/asまたは🏠を送信すると、アシスタントが表示されます。

 

 

さいごに

新機能を追加した経緯ですが、知らない方のプラべでこのBotが使われているところを見て、ブキ1dのコマンドを使用していたのですが、いちいちコマンドを打たなくてもDMに結果が送られてくる機能を付けたらこういうところで重宝しそうだなと思って作りました。

ソースコードを完全に作り直したので不具合が取り切れてない可能性がありますが、使っていただけると幸いです。(昨日のような不具合がまた出たら怖すぎるので今日一日はBotテストと不具合が起こらないようにお祈りしていました。)

サーバーに招待はこちらのリンクからhttps://discord.com/oauth2/authorize?client_id=718346812410298398&permissions=125952&scope=bot

不具合やバグなどがあったらコメントやTwitter、以下のDiscordサーバーから私のDMを見つけて教えてくださるとうれしいです。

 

Bot用discord サーバー

https://discord.gg/N5aqrYeHaa

ブキルーレットBOTを改良して使いやすくした

お久しぶりです。ぴぴです。

年末年始が近いので暇ができ、以前作ったBOTに手を加えてみました。

 

この記事は以下の記事の更新版となります。

st6r.hatenablog.com

 

スプラトゥーン2のブキランダムルーレット「ブキルーレットBot」(Ver.2.0)

名前の通りスプラトゥーン2のブキのルーレットです。

サーバーに招待はこちらのリンクからhttps://discord.com/oauth2/authorize?client_id=718346812410298398&permissions=125952&scope=bot

ネット上にたくさんの同じようなBotが存在しますが、ヒーローブキが抽選の対象から外れているものが多かったのとBotを作って勉強したかったので作ったものの改良版です。

 

コマンド一覧

このBotはいくつかの機能があり、コマンドによってランダムにブキなどが選ばれて返信されます。

一部のコマンドに対し、絵文字を送るだけで反応できるようにしました。

f:id:st6R:20201225170947p:plain

一部のコマンドは絵文字のみの入力でも反応します(画像は全ブキの中から1つランダムで

選んで返信するコマンドの例)


ブキ1または
1️⃣→全ブキの中から1つランダムで選んで返信します。

ブキ4または4️⃣→全ブキの中から4つランダムで選んで返信します。

ヒーロー1→ヒーローブキから1つランダムで選んで返信します。

シューター1

マニューバー1

チャージャー1

スロッシャー1

フデ1

ローラー1

ブラスター1

シェルター1

スピナー1

→それぞれのブキ種から1つランダムで選んで返信します。

擬似 →擬似確に必要なメイン性能の表をチャット欄に貼ってくれます。

 

いかのコマンドは結果がDMに送信されるものです。

 

ブキ1dまたは1️⃣1️⃣→全ブキの中から1つランダムで選んでDMに結果を送信します。

ヒーロー1d→ヒーローブキから1つランダムで選んでDMに結果を送信します。

シューター1d

マニューバー1d

チャージャー1d

スロッシャー1d

フデ1d

ローラー1d

ブラスター1d

シェルター1d

スピナー1d

→それぞれのブキ種から1つランダムで選んでDMに結果を送信します。

/mwまたは🧢アタマ、フク、クツのギアパワーを1つずつランダムに選びます。

 

また、/hまたは📖を送信すると、コマンドの一覧が表示されます。

 

さいごに

機能追加したいなってずっと思っていたのですがなかなかできず、あまり機能を増やせませんでしたが、使っていただけると幸いです。

サーバーに招待はこちらのリンクからhttps://discord.com/oauth2/authorize?client_id=718346812410298398&permissions=125952&scope=bot

不具合やバグなどがあったらコメントやTwitterで教えてくださるとうれしいです。

 

 

 

 

 

 

 

UNDERTALEとめんどくさいオタク

以下の文章はUNDERTALEのネタバレがあります。さらにゲームについて全面的に肯定する内容ではありません。

 

ぴぴです。最近更新してなくて申し訳ないです。

UNDERTALE5周年おめでとうございます。

私が初めてプレイしたのが2016年の英語版なのでそれからですら4年が経ってるのが怖いです。。。

 

初めてプレイした時は、インターネットの片隅で「このゲーム面白いかも」「MOTHERライクなインディーズ」(非公式MOTHER4みたいなことも言われていた)みたいな評価を受けていて、MOTHERが好きな私はやってみようと思ってsteamのDLから始めた記憶があります。当時は公式日本語版が存在しておらず、非公式日本語翻訳版を導入してプレイしていました。(非公式日本語翻訳を作った方々には感謝しかないです、彼らは今何をしているんだろうか)

 

ちなみにMOTHERシリーズの改造作品を調べたこともあって、EarthBound Halloween Hackについてもプレイ前に知っていました。

 

MOTHERシリーズが好きな私が好きにならないわけもなく、NPルートを興奮しながらクリアしていた記憶があります。プレイした記憶を消してもう一度やりたい。花との戦闘はどれも楽しかった。

 

2017年8月22日に公式日本語版が公開されたことを考えると、私が始めたころは日本でも人気が高まっていってる時期だったのかなと思っています。

 

今までプレイしたゲームでもかなり好きなゲームに分類されるのですが、某ルートのラスボス曲はあまり好きじゃないです。

この前tweetしてすぐに消した内容だったのですが、2017年の3月ごろにUNDERTALEのオーケストラ行ったことがあって、そのオーケストラの最後の曲として演奏されて、その時に会場が大盛り上がりしたんですよ。その時に本能的に悪寒がしてしまって、、

盛り上がった人たちはママとか大文字で喋る骨とかを〇したことを覚えていないのかあるいは何も感じなかったのかって思っちゃって周りにサイコパスが大量にいると思うと怖くて震えてました。

 

正直なところラスボスが骨のルートはゲームの中で異端なエンディングだと思っていて、メインキャラクターだけじゃなくてランダムエンカウントの住人すら出てこなくなるまで殺戮するのは怖いなって思っています。そのルートのラスボスが有名になりすぎてゲームの「皆殺しにする選択」が強く強調されているのがあまり好きではないです。UNDERTALEの代表曲がMEGALOVANIAみたいな風潮あるのは正直納得がいっていないです。

 

そもそもMEGALOVANIAはUNDERTALEが初出のBGMではないし、MEGALOVANIAをUNDERTALEの代表みたいな扱いにしてしまうと、虐殺ルートが目立ってしまうような気がします。あくまで誰も死ななくていい優しいRPGなので皆殺しをゴールとして掲げないで欲しい気持ちがあります。

 

その点スマブラSPのアレンジにUNDERTALEの戦闘曲のフレーズが入っているのには評価できるところではないと思います。

曲としてはMEGALOVANIAはUNDERTALEよりHomestuckの方が好きなのもあってUNDERTALEのbgmとして認知されてたくないなとも思います。犬作曲の他のゲームが将来出た時にもうアレンジが収録されないような気すらしています。

 

そんな複雑なめんどくさいオタクとしての感情はありますが、このゲームはbgm世界観キャラクター戦闘全てが素敵で好きです。5周年のタイミングで書く記事ではない気がするけど5周年おめでとうございますDELTARUNEのチャプター2も楽しみにしていますいつまでも待つのでいい作品を配信していただけると嬉しいです(早口)

乱文失礼しました。

 

Discord botが動いていませんでした。

ぴぴです。

最近忙しくてBot関係から遠ざかってたのですが、久々にブキルーレットBotの状況を見に行ったら

TypeError: __new__() got an unexpected keyword argument 'deny_new'

 というエラーを吐いていて動いていませんでした。多分一週間ほど動いてませんでした。サーバーに導入してくださった方には申し訳ありませんでした。

 

ちなみに、herokuで実行していたのですが、原因はrequirements.txtに記載してあるdiscord.pyのバージョンが1.0.0aだったから、という理由でした。

 

 このツイートを見て、「これ自分のBotも止まってるいるのではないか」と思って確認したら動いてませんでした。requirements.txtにdiscord.pyのバージョンを書いたことは覚えていたので1.0.0aを1.3.4に書き換えたら動くようになりました。

 

これからは更新情報なども収集しなければいけないなぁ、と思いました。(小並感)

 

Discord.pyのawait create_custom_emojiを使ってみた

こんにちは。ぴぴです。

 

 

 

 

 

 はじめに

DiscordのBotを私はDiscord.pyを用いて作っていますが、Discord.pyの公式リファレンス(https://discordpy.readthedocs.io/ja/latest/)を暇つぶしに見て使えそうな機能を試すことを最近ちょくちょくやっていて、学校の課題でC言語をやる傍らdiscord.pyやPythonについての理解を深めています。C言語とごっちゃになることがまれによくあってつらい

その中で最近面白いなと思ったものを紹介していきたいと思います。

 

await create_custom_emoji(*, name, image, roles=None, reason=None)

公式リファレンス:https://discordpy.readthedocs.io/ja/latest/api.html?highlight=create%20custom%20emoji#discord.Guild.create_custom_emoji

これで画像をサーバーのカスタム絵文字に追加できると知って、面白いなって思ってBotを作ってみました。

 

ソースコード

/pと入力し、一緒に画像を添付するとその画像をカスタム絵文字に変換するBotです。

import discord 
client = discord.Client()
@client.event 
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')
server = ’絵文字を登録したいサーバー’
@client.event
async def on_message(message): 
    if message.content.startswith('/p'):
       attachment = message.attachments[0]
       guild = client.get_guild(server)
       await attachment.save("att.gif")
       with open("att.gif", "rb") as img:
         img_emoji = img.read()
       await message.channel.send("絵文字に設定します。")
       await guild.create_custom_emoji(name="___",image=img_emoji)
client.run('BOTのトークン')

最低でもawait create_custom_emoji()の第一引数にカスタム絵文字として登録するときの名前、第二引数にカスタム絵文字にしたい画像のパスを入力すれば大丈夫です。

こんな感じに動いてくれます。

f:id:st6R:20200717211745p:plain

256KB以上の画像を送ってしまうとエラーでカスタム絵文字になりません。

エラーが出た時にエラーが起こったことを通知するようにはしていないです。

 

ブキルーレットBot更新のおしらせ(ついで)

https://st6r.hatenablog.com/entry/2020/06/15/192528?_ga=2.155102776.1800115853.1594981807-54866893.1584258511

ブキルーレットBotに機能を追加しました。それに従って上の記事を書き直しています。

 

 

 

 

 

7月11日

ぴぴです。

今日は7月11日です。7月11日といえば

 

カービィのエアライドが17周年ですね。

ドット絵に囲まれて育った人間なのでゲームキューブぐらいのポリゴンが未だに最近のものだって錯覚してます。スマブラディレクターの桜井さんが最後にディレクターをやった作品で、スマブラDXみたいに尖ったゲームバランスが好きです。

人気作品でリメイクが望まれてるカービィ作品といえばエアライドみたいなところありますね。。。

尖ったゲームバランスが好きなのでリメイク続編でアプデしろ!とかで荒れるのが見たくないのでリメイク続編はいいかなって感じです

 

それと7月11日は2002年から2015年まで任天堂の社長だった岩田聡さんの命日ですね。。

 

当時中学生だった私も訃報を聞いてめちゃくちゃにショックを受けた記憶が鮮明に残ってます。

 

あれから5年経ったことに驚きを隠せません。。。

 

MOTHER2カービィももしかしたら岩田さんがいなければ大きくなってなかったかもしれないし、DSやWiiが開発されずに私がゲーム業界に興味を持たなかっただろうし、私が小中学生だったころにゲームで友達と盛り上がらなかったかもしれないし、カービィWiiを夏休みずっとやることもなかっただろうし、いろいろ影響を受けているなと改めて感じます。

 

7月11日が来るたびに毎回思い出してます。オチが思いつきませんでした。