[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
バッチスクリプトで以下のようにすると echo が実行されない。
maven clean compile package echo ビルドおわったよ
次のようにするが吉。
call maven clean compile package echo ビルドおわったよ
バッチスクリプトから他のバッチスクリプトを実行すると、呼び出し元のバッチスクリプトが終わってしまうらしい。mvn コマンドは他のバッチスクリプトを呼んでいるので call なしだとだめなのだと。call で他のバッチスクリプトを呼ぶと、呼び出したバッチスクリプトを実行後に呼び出し元のバッチスクリプトの続きを実行してくれる模様。
Discord の Slash コマンドの使い方がよくわからない @ Javacordと前に言っていたが、ようやくわかったのでこれの定義と処理のコードを生成するツールを書いてみた。
https://shunshun94.github.io/shared/other/io/github/shunshun94/util/commandTree.htmlに配置してある。挙動・使い方は開発者コンソールに出力してある。手抜きである。
public DiscordSlashBot(String token) {
new DiscordApiBuilder().setToken(token).login().thenAccept(api -> {
Server server = api.getServerById("302452071993442307").get();
try {
logger.info("BotName: " + api.getYourself().getName());
logger.info("Owner: " + api.getOwner().get().getName());
logger.info("Server: " + server.getName());
} catch (Exception e) {
e.printStackTrace();
}
List<SlashCommandOption> dummy = new ArrayList<SlashCommandOption>();
SlashCommand.with("bcdice", "BCDice のダイスボットを利用します", Arrays.asList(
SlashCommandOption.createWithOptions(SlashCommandOptionType.SUB_COMMAND_GROUP, "admin", "ダイスボットを管理します", Arrays.asList(
SlashCommandOption.createWithOptions(SlashCommandOptionType.SUB_COMMAND, "setServer", "ダイスサーバを変更します", Arrays.asList(
SlashCommandOption.create(SlashCommandOptionType.STRING, "serverURL", "新しく利用するダイスサーバの URL です", true)
)),
SlashCommandOption.createWithOptions(SlashCommandOptionType.SUB_COMMAND, "removeServer", "ダイスサーバを削除します", Arrays.asList(
SlashCommandOption.create(SlashCommandOptionType.STRING, "serverURL", "削除するダイスサーバの URL です", true)
)),
SlashCommandOption.createWithOptions(SlashCommandOptionType.SUB_COMMAND, "listServer", "ダイスサーバを一覧します", dummy)
))
)).createForServer(server).join();
try {
List<SlashCommand> slachCommandsOnServer = api.getServerSlashCommands(server).get();
for(SlashCommand sc : slachCommandsOnServer) {
logger.info("Slash command: " + sc.getName());
}
} catch(Exception e) {
e.printStackTrace();
}
logger.info("Start App");
api.addSlashCommandCreateListener(event -> {
SlashCommandInteraction interaction = event.getSlashCommandInteraction();
logger.info(interaction.getCommandName());
List<SlashCommandInteractionOption> options = interaction.getOptions();
for(SlashCommandInteractionOption option : options) {
logger.info(option.getName()); // ※
}
interaction.createImmediateResponder().setContent("Hello!! Hello hello!").respond();
});
});
}
Javacord を使い Slash コマンドを使った bot を作ろうとしている。上述の書き方でコマンドのサジェストは出せたが打たれたコマンドの取得ができない。上述のコードの※の所でそのへんがうまくとれることを期待していたのだが。今一度チュートリアルやドキュメントを読み直してみるかぁって顔をしている。
ある程度以上の規模のボットはスラッシュコマンドを使わないと上手く動かなくなる日が近づいているのもあり、ちょっと困ったものである。
ここ1週間ちょっとで3度 discord-bcdicebot をバージョンアップしている。
(雛´-`).。oO(#Discord で BCDice を使う bot のアプリを更新しました。ライブラリの差し替えを実施しています)https://t.co/cTbmCH3Brf
— しゅんしゅんひよこ (@Shunshun94) December 11, 2021
(雛´-`).。oO(#Discord で BCDice を使う bot のアプリを更新しました。ライブラリの差し替えを実施したのみです)https://t.co/cTbmCH3Brf
— しゅんしゅんひよこ (@Shunshun94) December 15, 2021
(雛´-`).。oO(#Discord で BCDice を使う bot のアプリを更新しました。ライブラリの差し替えを実施したのみです)https://t.co/cTbmCHkEtf
— しゅんしゅんひよこ (@Shunshun94) December 19, 2021
いずれも同じ文面だが、内容もまたいずれ同じようなものである。
まだ更新来たりするのかもなーって思ったりしなくもない。
Matcher matcher= RESULT_VALUE_REGEXP.matcher(targetString);
List<string> values = new ArrayList<string>();
while( matcher.find() ) {
String matchResult = matcher.group(1);
values.add(matchResult);
}