AlexQFG
Новичок
- Баллы
- 6
- Имя в Minecraft
- TwixGo
Решил написать этот стартап, так-как на русском языке практически ничего нету (Есть, но без нормальных пояснений). Второй причиной является то, что когда я сам начинал кодить плагины, я искал темы на русском, и, в итоге, мало чего находил. Сейчас я стал умнее и ищу все, что мне нужно, исключительно на английском. Но, как известно, многие новички вряд-ли знают английский на столько хорошо, чтобы самим читать гайды, при этом понимая, что же там написано.
Ближе к сути. В этой теме я расскажу новичкам, как-же делать простейшие(!) кулдауны.
Теперь пояснения:
Создаем хэшмап с именем cooldown. Что такое хэшмап? Это набор значений типа ключ:объект. Вызывая ключ мы получим объект. В таких вот (<>) скобочках мы пишем типы ключа и объекта (Так-же можно использовать конструкцию <String, HashMap<String, String>>, но сейчас не об этом)
HashMap имеет несколько основных методов, которых для начала должно хватить:
put (Ключ, Объект) - Добавляет значение в хэшмап.
get (Ключ) - Вызвать ключ, после чего получим объект
remove (Ключ) - Удалить ключ вместе с объектом
Как это все работает в коде:
1. Проверяем, установлен ли кулдаун для данного игрока:
2. Проверяем, действителен ли еще наш кулдаун: (Если он все еще больше системного времени, то да)
3. Если кулдан не действителен, то удаляем его (Не обязательно)
4. После выполнения всей команды создаем новый кулдаун;
У некоторых может возникнуть вопрос: Что за число - 10000? Все просто - это наше время в мили секундах (секунды*1000). Вместо этого числа можно использовать кастомное значемие из конфига:
Эту тему я создал так же для того, чтобы новички разобрались в понятии HashMap, ведь в начале для меня это было что-то заоблачное.
Это, в принципе, и все. Не так уж и трудно, да? Я знаю, что лучше делать кулдауны через scheduler, но для новичков в кодинге на баките и такого будет достаточно.
Ближе к сути. В этой теме я расскажу новичкам, как-же делать простейшие(!) кулдауны.
Код:
HashMap<String, Integer> cooldown = new HashMap<String, Integer>();
boolean onCommand(CommandSender s, Command cmd, String label, String args[]){
switch(cmd.getName().toLowerCase()){
case "command1":
if( cooldown.get(s.getName())!=null && cooldown.get(sender.getName())>System.currentTimeMillis() {
s.sendMessage("Подождите 10 секунд, перед тем, как использовать команду снова");
return true;
}
else сooldown.remove(s.getName());
s.sendMessage("Это моя тестовая команда");
cooldown.put(s.getName(), System.currentTimeMillis() + 10000);
break;
case "commandwithoutcooldown":
s.sendMessage("Это моя тестовая команда без кулдауна");
break;
}
}
Код:
HashMap<String, Integer> cooldown = new HashMap<String, Integer>();
HashMap имеет несколько основных методов, которых для начала должно хватить:
put (Ключ, Объект) - Добавляет значение в хэшмап.
get (Ключ) - Вызвать ключ, после чего получим объект
remove (Ключ) - Удалить ключ вместе с объектом
Как это все работает в коде:
1. Проверяем, установлен ли кулдаун для данного игрока:
Код:
if( cooldown.get(s.getName()) != null ...
Код:
... && cooldown.get(s.getName()) > System.currentTimeMillis()){ ...
Код:
else cooldown.remove(s.getName());
Код:
cooldown.put(s.getName(), System.currentTimeMillis() + 10000);
Код:
cooldown.put(s.getName(), System.currentTimeMillis() + getConfig().getInt("cooldownTime"));
Эту тему я создал так же для того, чтобы новички разобрались в понятии HashMap, ведь в начале для меня это было что-то заоблачное.
Это, в принципе, и все. Не так уж и трудно, да? Я знаю, что лучше делать кулдауны через scheduler, но для новичков в кодинге на баките и такого будет достаточно.
Последнее редактирование: