命令名称声明规范移除"/"前缀,修复非命令却由于"@"符号导致事件被取消的问题

This commit is contained in:
A.C.Sukazyo Eyre 2022-05-22 14:19:56 +08:00
parent ce83e3284d
commit 9d0a1efc53
Signed by: Eyre_S
GPG Key ID: EFB47D98FE082FAD
11 changed files with 30 additions and 27 deletions

View File

@ -1,6 +1,6 @@
## Core
VERSION = 0.7.0.9
VERSION = 0.7.0.10
# dependencies

View File

@ -4,6 +4,6 @@ package cc.sukazyo.cono.morny;
* the final field that will be updated by gradle automatically.
*/
public class GradleProjectConfigures {
public static final String VERSION = "0.7.0.9";
public static final long COMPILE_TIMESTAMP = 1653199608824L;
public static final String VERSION = "0.7.0.10";
public static final long COMPILE_TIMESTAMP = 1653200212040L;
}

View File

@ -14,7 +14,7 @@ import static cc.sukazyo.cono.morny.Log.logger;
public class DirectMsgClear implements ISimpleCommand {
@Nonnull @Override public String getName () { return "/r"; }
@Nonnull @Override public String getName () { return "r"; }
@Nullable @Override public String[] getAliases () { return new String[0]; }

View File

@ -18,7 +18,7 @@ import javax.annotation.Nullable;
*/
public class EventHack implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/event_hack"; }
@Nonnull @Override public String getName () { return "event_hack"; }
@Nullable @Override public String[] getAliases () { return null; }
@Nonnull @Override public String getParamRule () { return "[(user|group|any)]"; }
@Nonnull @Override public String getDescription () { return "输出 bot 下一个获取到的事件序列化数据"; }

View File

@ -15,7 +15,7 @@ import javax.annotation.Nullable;
public class GetUsernameAndId implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/user"; }
@Nonnull @Override public String getName () { return "user"; }
@Nullable @Override public String[] getAliases () { return null; }
@Nonnull @Override public String getParamRule () { return "[userid]"; }
@Nonnull @Override public String getDescription () { return "获取指定或回复的用户相关信息"; }

View File

@ -20,8 +20,11 @@ import static cc.sukazyo.untitled.util.telegram.formatting.MsgEscape.escapeHtml;
*/
public class Ip186Query {
public static final String CMD_IP = "ip";
public static final String CMD_WHOIS = "whois";
public static class Ip implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/ip"; }
@Nonnull @Override public String getName () { return CMD_IP; }
@Nullable @Override public String[] getAliases () { return new String[0]; }
@Nonnull @Override public String getParamRule () { return "[ip]"; }
@Nonnull @Override public String getDescription () { return "通过 https://ip.186526.xyz 查询 ip 资料"; }
@ -29,7 +32,7 @@ public class Ip186Query {
}
public static class Whois implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/whois"; }
@Nonnull @Override public String getName () { return CMD_WHOIS; }
@Nullable @Override public String[] getAliases () { return new String[0]; }
@Nonnull @Override public String getParamRule () { return "[domain]"; }
@Nonnull @Override public String getDescription () { return "通过 https://ip.186526.xyz 查询域名资料"; }
@ -62,8 +65,8 @@ public class Ip186Query {
try {
IP186QueryResponse response = switch (command.getCommand()) {
case "/ip" -> IP186QueryHandler.queryIp(arg);
case "/whois" -> IP186QueryHandler.queryWhoisPretty(arg);
case CMD_IP -> IP186QueryHandler.queryIp(arg);
case CMD_WHOIS -> IP186QueryHandler.queryWhoisPretty(arg);
default -> throw new IllegalArgumentException("Unknown 186-IP query method " + command.getCommand());
};
MornyCoeur.extra().exec(new SendMessage(

View File

@ -159,7 +159,7 @@ public class MornyCommands {
///
private static class ON implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/o"; }
@Nonnull @Override public String getName () { return "o"; }
@Nullable
@Override public String[] getAliases () { return null; }
@Nonnull @Override public String getParamRule () { return ""; }
@ -175,8 +175,8 @@ public class MornyCommands {
}
private static class Hello implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/hello"; }
@Nullable @Override public String[] getAliases () { return new String[]{"/hi"}; }
@Nonnull @Override public String getName () { return "hello"; }
@Nullable @Override public String[] getAliases () { return new String[]{"hi"}; }
@Nonnull @Override public String getParamRule () { return ""; }
@Nonnull @Override public String getDescription () { return "打招呼"; }
@Override public void execute (@Nonnull InputCommand command, @Nonnull Update event) { onCommandHelloExec(event); }
@ -191,7 +191,7 @@ public class MornyCommands {
}
private static class Exit implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/exit"; }
@Nonnull @Override public String getName () { return "exit"; }
@Nullable @Override public String[] getAliases () { return new String[0]; }
@Nonnull @Override public String getParamRule () { return ""; }
@Nonnull @Override public String getDescription () { return "关闭 Bot (仅可信成员)"; }
@ -217,7 +217,7 @@ public class MornyCommands {
}
private static class Version implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/version"; }
@Nonnull @Override public String getName () { return "version"; }
@Nullable @Override public String[] getAliases () { return null; }
@Nonnull @Override public String getParamRule () { return ""; }
@Nonnull @Override public String getDescription () { return "检查 Bot 版本信息"; }
@ -244,7 +244,7 @@ public class MornyCommands {
}
private static class MornyRuntime implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/runtime"; }
@Nonnull @Override public String getName () { return "runtime"; }
@Nullable @Override public String[] getAliases () { return null; }
@Nonnull @Override public String getParamRule () { return ""; }
@Nonnull @Override public String getDescription () { return "获取 Bot 运行时信息(包括版本号)"; }
@ -309,7 +309,7 @@ public class MornyCommands {
}
private static class Jrrp implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/jrrp"; }
@Nonnull @Override public String getName () { return "jrrp"; }
@Nullable @Override public String[] getAliases () { return null; }
@Nonnull @Override public String getParamRule () { return ""; }
@Nonnull @Override public String getDescription () { return "获取 (假的) jrrp"; }
@ -329,7 +329,7 @@ public class MornyCommands {
}
private static class SaveData implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/save"; }
@Nonnull @Override public String getName () { return "save"; }
@Nullable @Override public String[] getAliases () { return null; }
@Nonnull @Override public String getParamRule () { return ""; }
@Nonnull @Override public String getDescription () { return "保存缓存数据到文件(仅可信成员)"; }

View File

@ -16,7 +16,7 @@ import static cc.sukazyo.untitled.util.telegram.formatting.MsgEscape.escapeHtml;
public class Nbnhhsh implements ITelegramCommand {
@Nonnull @Override public String getName () { return "/nbnhhsh"; }
@Nonnull @Override public String getName () { return "nbnhhsh"; }
@Nullable @Override public String[] getAliases () { return null; }
@Nonnull @Override public String getParamRule () { return "[text]"; }
@Nonnull @Override public String getDescription () { return "检索文本内 nbnhhsh 词条"; }

View File

@ -13,7 +13,7 @@ import javax.annotation.Nullable;
public class 喵呜 {
public static class 抱抱 implements ISimpleCommand {
@Nonnull @Override public String getName () { return "/抱抱"; }
@Nonnull @Override public String getName () { return "抱抱"; }
@Nullable @Override public String[] getAliases () { return new String[0]; }
@Override public void execute (@Nonnull InputCommand command, @Nonnull Update event) {
MornyCoeur.extra().exec(new SendMessage(
@ -24,7 +24,7 @@ public class 喵呜 {
}
public static class 揉揉 implements ISimpleCommand {
@Nonnull @Override public String getName () { return "/揉揉"; }
@Nonnull @Override public String getName () { return "揉揉"; }
@Nullable @Override public String[] getAliases () { return new String[0]; }
@Override public void execute (@Nonnull InputCommand command, @Nonnull Update event) {
MornyCoeur.extra().exec(new SendMessage(
@ -35,7 +35,7 @@ public class 喵呜 {
}
public static class 蹭蹭 implements ISimpleCommand {
@Nonnull @Override public String getName () { return "/蹭蹭"; }
@Nonnull @Override public String getName () { return "蹭蹭"; }
@Nullable @Override public String[] getAliases () { return new String[0]; }
@Override public void execute (@Nonnull InputCommand command, @Nonnull Update event) {
MornyCoeur.extra().exec(new SendMessage(
@ -46,7 +46,7 @@ public class 喵呜 {
}
public static class 贴贴 implements ISimpleCommand {
@Nonnull @Override public String getName () { return "/贴贴"; }
@Nonnull @Override public String getName () { return "贴贴"; }
@Nullable @Override public String[] getAliases () { return new String[0]; }
@Override public void execute (@Nonnull InputCommand command, @Nonnull Update event) {
MornyCoeur.extra().exec(new SendMessage(

View File

@ -13,7 +13,7 @@ import java.util.concurrent.ThreadLocalRandom;
public class 私わね implements ISimpleCommand {
@Nonnull
@Override public String getName () { return "/me"; }
@Override public String getName () { return "me"; }
@Nullable
@Override public String[] getAliases () { return null; }

View File

@ -12,10 +12,10 @@ public class OnTelegramCommand extends EventListener {
@Override
public boolean onMessage (@Nonnull Update event) {
if (event.message().text() == null) {
return false; // 检测到无消息文本忽略掉命令处理
if (event.message().text() == null || !event.message().text().startsWith("/")) {
return false; // 检测到(命令格式)文本忽略掉命令处理
}
final InputCommand command = new InputCommand(event.message().text());
final InputCommand command = new InputCommand(event.message().text().substring(1));
if (command.getTarget() != null && !MornyCoeur.getUsername().equals(command.getTarget())) {
return true; // 检测到命令并非针对 morny退出整个事件处理链
}