- Баллы
- 1
Как проверить сколько раз была введена определенная команда и дальше?
Например, если команда "/ban" была введена 3 раза, что-то происходило
Например, если команда "/ban" была введена 3 раза, что-то происходило
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Создать HashMap, где ключ будет - ник игрока (или сам игрок), а значение - количество вводов команды.Как проверить сколько раз была введена определенная команда и дальше?
Например, если команда "/ban" была введена 3 раза, что-то происходило
Можно пример кода?Создать HashMap, где ключ будет - ник игрока (или сам игрок), а значение - количество вводов команды.
Если нужно разные команды проверять, тогда придется сделать HashMap в HashMap.
Короче нужно просто сохранять ник игрока и количество вводов команды в коллекцию. И постоянно проверять нужное значение.
Тебе для всех команд или только для одной команды?Можно пример кода?
Для однойТебе для всех команд или только для одной команды?
private static HashMap<Player, Integer> bans = new HashMap<>();
// проверка на превышение лимита ввода комманды
private static boolean canBan(Player p) {
if (!bans.containsKey(p)) {
return true;
}
return bans.get(p) < 3;
}
// обновить счетчик при вводе комманды
private static void onBan(Player p) {
if (!bans.containsKey(p)) {
bans.put(p, 1);
} else {
bans.put(p, bans.get(p) + 1);
}
}
if (!canBan(p)) {
//лимит исчерпан и отменить выполнение комманды
} else {
//обновить счетчик
onBan(p);
// дальше выполнять команду...
}
package ru.fucktmgc.mProtect.events;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import ru.fucktmgc.mProtect.Main;
import ru.fucktmgc.mProtect.Utils.Message;
import java.util.HashMap;
import java.util.HashSet;
public class PassListener implements Listener {
FileConfiguration Config = Main.getInstance().getConfig();
private HashSet<String> uuid = new HashSet<>();
private static HashMap<Player, Integer> attemps = new HashMap<>();
private static boolean canBan(Player p) {
if (!attemps.containsKey(p)) {
return true;
}
return attemps.get(p) < 3;
}
// обновить счетчик при вводе комманды
private static void onBan(Player p) {
if (!attemps.containsKey(p)) {
attemps.put(p, 1);
} else {
attemps.put(p, attemps.get(p) + 1);
}
}
@EventHandler
public void onJoinCheck(PlayerJoinEvent e) {
Player p = e.getPlayer();
for (String perms : Config.getStringList("settings.permission")) {
if (p.hasPermission(perms) || p.isOp()) {
this.uuid.add(p.getName());
}
}
}
@EventHandler
public void onPas(PlayerCommandPreprocessEvent e) {
Player p = e.getPlayer();
if(!this.uuid.contains(p.getName())) {
if(e.getMessage().toLowerCase().startsWith("/pas")) {
e.setCancelled(true);
Message.sendMessage(p, Config.getString("messages.no-need").replace("&", "§"));
}
}
if (this.uuid.contains(p.getName())) {
if (e.getMessage().toLowerCase().startsWith("/pas")) {
e.setCancelled(true);
String[] mess2 = e.getMessage().toLowerCase().split(" ");
if (!Config.contains("players." + p.getName() + ".password")) {
if (!mess2[1].equalsIgnoreCase(Config.getString("settings.password"))) {
Message.sendMessage(p, Config.getString("messages.wrong").replace("&", "§"));
e.setCancelled(true);
}
if (mess2[1].equalsIgnoreCase(Config.getString("settings.password"))) {
Message.sendMessage(p, Config.getString("messages.сomplete").replace("&", "§"));
this.uuid.remove(p.getName());
}
}
if (Config.contains("players." + p.getName() + ".password")) {
if (!mess2[1].equalsIgnoreCase(Config.getString("players." + p.getName() + ".password"))) {
Message.sendMessage(p, Config.getString("messages.wrong").replace("&", "§"));
e.setCancelled(true);
}
if (mess2[1].equalsIgnoreCase(Config.getString("players." + p.getName() + ".password"))) {
Message.sendMessage(p, Config.getString("messages.сomplete").replace("&", "§"));
this.uuid.remove(p.getName());
}
}
}
}
}
}
Совсем больной?тогда придется сделать HashMap в HashMap.

Map<String, Map<String, Value>> map = new HashMap<String, HashMap<String, Value>>();Совсем больной?![]()
К чему говном обмазываться, когда можно вот так? Map<String, ConfigClass> mapMap<String, Map<String, Value>> map