- Баллы
- 76
- Имя в Minecraft
- Solomka
Не реагирует на аргументы в сообщении в вк или я что-то не так делаю?
Когда пишу просто сообщение, например, !player - выводит то, что нужен аргумент, если пишу с аргументом !player asdasdasd - ничего не происходит ни ошибок, ни реакции бота
KillCommand:
Получение аргументов:
Когда пишу просто сообщение, например, !player - выводит то, что нужен аргумент, если пишу с аргументом !player asdasdasd - ничего не происходит ни ошибок, ни реакции бота
Код:
@Override
public void onMessageNew(MessageNewEvent messageNewEvent) {
Message message = messageNewEvent.getMessage();
String[] args = message.getText().split(" ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < args.length; i++) sb.append(args[i]).append(' ');
switch (message.getText()) {
case "!help" -> {
try {
checkAdmin(message, checkContainsUser, false);
return;
} catch (BotsLongPollException | BotsLongPollHttpException e) {
e.printStackTrace();
}
}
case "!admin" -> {
try {
sendMessage(message, disableBot, null);
return;
} catch (BotsLongPollHttpException | BotsLongPollException e) {
e.printStackTrace();
}
try {
checkAdmin(message, joinAdmin, true);
} catch (BotsLongPollException | BotsLongPollHttpException e) {
e.printStackTrace();
}
}
case "!player.kill" -> {
try {
sendMessage(message, disableBot, null);
return
} catch (BotsLongPollHttpException | BotsLongPollException e) {
e.printStackTrace();
}
Player player = Bukkit.getPlayerExact(sb.toString());
try {
kill(player, message);
} catch (BotsLongPollException | BotsLongPollHttpException e) {
e.printStackTrace();
}
}
}
}
private static String buildString(String[] str) {
StringBuilder sb = new StringBuilder();
for (String string : str) {
sb.append(string);
}
return sb.toString();
}
private static void checkAdmin(Message message, String string, boolean giveAdmin) throws BotsLongPollException, BotsLongPollHttpException {
if (!adminMode.contains(message.getFromId())) {
if (Bukkit.getServer() != null) {
if (giveAdmin) {
adminMode.add(message.getFromId());
try {
sendMessage(message, string, null);
return;
} catch (BotsLongPollHttpException | BotsLongPollException e) {
e.printStackTrace();
}
}
try {
sendMessage(message, string, null);
return;
} catch (BotsLongPollHttpException | BotsLongPollException e) {
e.printStackTrace();
}
}
sendMessage(message, disableBot, null);
return;
}
sendMessage(message, alreadyAdminMode, null);
}
public static void sendMessage(Message message, String string, String twoString) throws BotsLongPollException, BotsLongPollHttpException {
if(twoString == null) {
new MessagesSend(new Functions()).setPeerId(message.getPeerId()).setMessage(string).execute();
return;
}
new MessagesSend(new Functions()).setPeerId(message.getPeerId()).setMessage(string + "" + twoString).execute();
}
KillCommand:
Код:
public static void kill(Player p, Message message) throws BotsLongPollException, BotsLongPollHttpException {
if (p != null && p.isOnline() && Bukkit.getServer() != null) {
p.damage(p.getHealth());
sendMessage(message, successKill + p.getName(), null);
}
}
Получение аргументов:
Код:
String[] args = message.getText().split(" ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < args.length; i++) sb.append(args[i]).append(' ');