Question how to make cooldown per command using ArrayList

FREULIGG_

New member
Jan 15, 2022
1
0
1
Помоги мне, пожалуйста. Я хочу сделать так, чтобы когда игрок вводит команду, он сначала проверял, есть ли она в массиве, а если нет, то добавлял ее туда. IDE предлагает мне создать конструктор, но если я его создам, плагин на сервере не запустится. А без конструктора плагин не скомпилируется. Что делать? (Ps я русский, переводил через переводчик, так что не обращайте внимания на ошибки)

код:
пакет play.snowmc.cf.snowauth;

импортировать org.bukkit.command.Command;
импортировать org.bukkit.command.CommandExecutor;
импортировать org.bukkit.command.CommandSender;
импортировать org.bukkit.entity.Player;
импортировать org.bukkit.event.EventHandler;
импортировать org.bukkit.event.Listener;
импортировать org.bukkit.event.player.PlayerJoinEvent;
импортировать org.bukkit.event.player.PlayerQuitEvent;
импортировать org.bukkit.plugin.java.JavaPlugin;

импортировать java.util.ArrayList;

общедоступный окончательный класс SnowAuth расширяет JavaPlugin, реализует Listener
{

частный статический экземпляр SnowAuth;
личные данные игроков;
ArrayList<SnowAuth> isauth = new ArrayList<SnowAuth>();

публичная пустота onEnable()
{
экземпляр = это;
data = новые игроки («players.yml»);
сохранить конфигурацию по умолчанию ();
this.getServer().getPluginManager().registerEvents(это, это);
this.getLogger().info("§aПлагин на авторизацию включен");

getCommand("reg").setExecutor(новый CommandExecutor() {
@Override
public boolean onCommand (отправитель CommandSender, команда Command, метка String, аргументы String [])
{
если (args.length != 2)
{
sender.sendMessage("§8[§bРегистрация§8] §cВедите /reg (пароль) (повтор пароля)");
}еще{
Строка arg1 = args[0];
Строка arg2 = args[1];
если (arg1.equals(arg2) == true) {
Строка ул = аргументы[0];
целая длина = ул.длина();
если (длина <= 16 && длина >= 4) {
если (isauth.contains(sender.getName()) == false)
{
SnowAuth.getData().getConfig().set(sender.getName(), args[0]);
sender.sendMessage("§8[§bРегистрация§8] §aВы успешно зарегистрировались");
isauth.add(новый SnowAuth(sender.getName()));
} еще {
sender.sendMessage("§8[§bАвторизация§8] §aВы уже авторизованы");
}
} еще {
sender.sendMessage("§8[§bРегистрация§8] §cВаш пароль слишком длинный или слишком короткий. Максимальная длина - 16 символов, минимальная - 4");
}
} еще{
sender.sendMessage("§8[§bРегистрация§8] §cПароли не совпадают");
}
}
вернуть истину;
}
});
getCommand("логин").setExecutor(новый CommandExecutor() {
@Override
public boolean onCommand (отправитель CommandSender, команда Command, метка String, аргументы String [])
{
если (args.length != 1)
{
sender.sendMessage("§8[§bАвторизация§8] §7Введите §b/login (ваш пароль)");
}еще{
Строковый проход = SnowAuth.getData().getConfig().getString(sender.getName());
Строка arg1 = args[0];
если (pass.equals(arg1))
{
если (isauth.contains(sender.getName()) == false)
{
sender.sendMessage("§8[§bАвторизация§8] §aВы успешно авторизовались");
isauth.add(новый SnowAuth(sender.getName()));
} еще {
sender.sendMessage("§8[§bАвторизация§8] §aВы уже авторизованы");
}

}еще{
sender.sendMessage("§8[§bАвторизация§8] §cНеверный пароль");
}
}
вернуть истину;
}
});
}

публичная пустота onDisable()
{
SnowAuth.getData().save();
//isauth.clear();
}


ошибка компиляции:
C:\Users\proko\IdeaProjects\Authorization\src\main\java\play\snowmc\cf\snowauth\SnowAuth.java:48:44
java: конструктор SnowAuth в классе play.snowmc.cf.snowauth.SnowAuth нельзя применить к заданным типам;
требуется: без аргументов
найдено: java.lang.String
причина: фактические и формальные списки аргументов различаются по длине


конструктор:
public SnowAuth (имя строки) {
}

ошибка, если я использую конструктор:
[21:02:36 ОШИБКА]: не удалось загрузить «plugins\Authorization.jar» в папку «plugins»
org.bukkit.plugin.InvalidPluginException: неправильный тип плагина
в org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:98) ~[patched_1.12.2.jar:git-Paper-1620]
в org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:127) ~[patched_1.12.2.jar:git-Paper-1620]
в org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[patched_1.12.2.jar:git-Paper-1620]
в org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[patched_1.12.2.jar:git-Paper-1620]
на org.bukkit.craftbukkit.v1_12_R1.CraftServer.loadPlugins(CraftServer.java:318) ~[patched_1.12.2.jar:git-Paper-1620]
в net.minecraft.server.v1_12_R1.DedicatedServer.init(DedicatedServer.java:222) ~[patched_1.12.2.jar:git-Paper-1620]
на net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:616) ~[patched_1.12.2.jar:git-Paper-1620]
в java.lang.Thread.run (неизвестный источник) [?: 1.8.0_311]
Вызвано: java.lang.InstantiationException: play.snowmc.cf.snowauth.SnowAuth
в java.lang.Class.newInstance (неизвестный источник) ~[?:1.8.0_311]
в org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:94) ~[patched_1.12.2.jar:git-Paper-1620]
... еще 7
Вызвано: java.lang.NoSuchMethodException: play.snowmc.cf.snowauth.SnowAuth.<init>()
в java.lang.Class.getConstructor0 (неизвестный источник) ~[?:1.8.0_311]
в java.lang.Class.newInstance (неизвестный источник) ~[?:1.8.0_311]
в org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:94) ~[patched_1.12.2.jar:git-Paper-1620]
... еще 7
 

sulu

Paper Triage
Staff member
Dec 14, 2021
23
3
4
3
Minnesota
Unfortunately, this is an English forum only (did you google translate this java to Russian? This makes absolutely no sense), and 1.12 is not supported. 1.17.1 and 1.18.1 and the only currently supported versions
 
  • Like
Reactions: aberdeener