Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Я использу. этот ивент, но как мне через if проверить саму команду?
Например так.Я использу. этот ивент, но как мне через if проверить саму команду?
@EventHandler
public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent e) {
String[] args = e.getMessage().split(" ");
if (args.length == 0) {
return;
}
if (args[0].equalsIgnoreCase("твоя_команда")) {
e.setCancelled(true);
}
}
Так не катитНапример так.
Код:@EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent e) { String[] args = e.getMessage().split(" "); if (args.length == 0) { return; } if (args[0].equalsIgnoreCase("твоя_команда")) { e.setCancelled(true); } }
Так не катит
@EventHandler
public void onCommand (PlayerCommandPreprocessEvent e) {
Player p = e.getPlayer();
String cmd = e.getMessage().split(" ")[0].toLowerCase();
List<String> list = config.getStringList("Commands"); // Получаем лист с командами из конфига
if(p.isOp()) return;
for(int i = 0; i < cmd.length(); i++) {
if(!list.contains(cmd)) return; // Если не содержится в листе, то ничего не делаем
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cmessage"));
e.setCancelled(true);
}
}
А что конкретно нужно?Так не катит
Для чего здесь цикл for?for(int i = 0; i < cmd.length(); i++) { if(!list.contains(cmd)) return; // Если не содержится в листе, то ничего не делаем p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cmessage")); e.setCancelled(true); }
Чтобы появился баг с тем, что код не обрабатывает команды в один символДля чего здесь цикл for?
Не работает так.Чтобы появился баг с тем, что код не обрабатывает команды в один символ![]()
http://rubukkit.org/threads/kak-otklonit-vypolnenie-komandy.182354/Здравствуйте, хочу поинтересоваться, как мне через метод if проверить, если это не команда определённая то выполняеться event.setCancelled(true); отмена команда?
Ок, через 9 часов проверю, а щас спать, у меня уже 12 часов ночи.
@EventHandler
public void onStartCommands(PlayerCommandPreprocessEvent e) {
Player p = e.getPlayer();
if (e.getMessage().toLowerCase().startsWith("/start")) { // Если команда /start то
p.sendMessage("Ого, ты написал команду /start");
}
}
В твоем случае код будет выполняться при любых, начинающихся со "/start". Да, оно будет выполняться при команде "/start", но будет выполняться и, к примеру, при командах "/startrace", "/startbattle", "/startevent" и так далее.Можешь вот так:
Код:@EventHandler public void onStartCommands(PlayerCommandPreprocessEvent e) { Player p = e.getPlayer(); if (e.getMessage().toLowerCase().startsWith("/start")) { // Если команда /start то p.sendMessage("Ого, ты написал команду /start"); } }
Сладких снов))Ок, через 9 часов проверю, а щас спать, у меня уже 12 часов ночи.
@EventHandler
public void onCommand (PlayerCommandPreprocessEvent e) {
Player p = e.getPlayer();
String[] args = e.getMessage().split(" ");
if(args.lenght !=0) {
if(args[0].equalsIgnoreCase("комманда") {
e.setCancelled(true);
}
}
}
То же самое, что я написал, лул, просто создал дополнительные ненужные переменные.Упрощу задачу более адекватным и понятным кодом.
Код:@EventHandler public void onCommand (PlayerCommandPreprocessEvent e) { Player p = e.getPlayer(); String[] args = e.getMessage().split(" "); if(args[0].equalsIgnoreCase("комманда") { e.setCancelled(true); } }
какие же переменные тут ненужные, друг?)То же самое, что я написал, лул, просто создал дополнительные ненужные переменные.
Читабильность кода? Не)То же самое, что я написал, лул, просто создал дополнительные ненужные переменные.
1. Слеш входит в проверку, поэтому exception'ов этих не будет.Читабильность кода? Не)
equalsIgnoreCase? Зачем, люди должны писать команду точь в точь, как она есть!
А если вдруг введут "/" null? outofboundsexception?
Строковый массив args. Ты создаешь поле args и используешь его лишь один раз в коде. Зачем, друг?)какие же переменные тут ненужные, друг?)
1. Слеш входит в проверку, поэтому exception'ов этих не будет.
2. Я лично очень сильный перфекционист и люблю, чтобы все было точно до мелких деталей, это дело каждого, учитывать регистр или нет. Не знаю точно, но если "test" и "tEst" воспринимаются ядром, как две разные команды, то тут точно имеет смысл проверять регистр, в другом случае ты прав, можно обойтись и без этого, это в каких-то случаях даже удобнее будет.
3. Код и так читается нормально, потому что он сам по себе очень прост.
Строковый массив args. Ты создаешь поле args и используешь его лишь один раз в коде. Зачем, друг?)
