Помогите Как заставить FigAdmin обновлять список банов из MySQL при LoginEvent?

Sitmobedaf

Старожил
Пользователь
Баллы
103
Имя в Minecraft
SiT
У меня BungeeCord сервер (плагин для Bungee не подходит). Когда баним игрока на режиме BedWars к примеру, этот забаненный может зайти на лобби и пойти на СкайБлок или на любой другой режим, но только не на БВ. Хочу заставить FigAdmin обновлять базу из MySQL при входе каждого игрока, или лучше раз в 2-5 секунд - это было бы лучше, но я вообще не понимаю, как это сделать. Прошу помощи.

Вот этот FigAdmin - https://github.com/Majncraft/FigAdmin-Reloaded
 
У меня BungeeCord сервер (плагин для Bungee не подходит). Когда баним игрока на режиме BedWars к примеру, этот забаненный может зайти на лобби и пойти на СкайБлок или на любой другой режим, но только не на БВ. Хочу заставить FigAdmin обновлять базу из MySQL при входе каждого игрока, или лучше раз в 2-5 секунд - это было бы лучше, но я вообще не понимаю, как это сделать. Прошу помощи.

Вот этот FigAdmin - https://github.com/Majncraft/FigAdmin-Reloaded
можно обновлять базу после бана. Так будет лучше
 
PrepareStatment st = db.кактоПолучаемСтатмент("Select Table.player from table where Table.player = '"+playername+"'")
ResultSet set = st.excutateUpdate();
if (set.next){
Игрок забанен.
}

Писал по памяти.
 
Не самый лучший плагин. Может тормозить при большом кол-ве банов. Поэтому не рекомендую часто обновлять список, из-за пинга будут лаги так как всё происходит в главном потоке.
В конец onEnable() добавить:
Java:
    // Синхронизация с БД
     Bukkit.getScheduler().runTaskTimer(this, () -> {
       bannedPlayers = db.getBannedPlayers();

       // Теперь кикаем забаненных
       Set<UUID> bannedIds = new HashSet<>();
       for(EditBan entry : bannedPlayers) {
         if(entry.type == EditBan.BAN) bannedIds.add(UUID.fromString(entry.UUID));
       }

       for(Player player : Bukkit.getOnlinePlayers()) {
         if(bannedIds.contains(player.getUniqueId())) {
           player.kickPlayer("Ты забанен");
         }
       }
     }, 20 * 120, 20 * 120); // каждые 2 мин
РУКАЛИЦО.

Забаненые смогут играть с киком раз в две минуты.
 
Не самый лучший плагин. Может тормозить при большом кол-ве банов. Поэтому не рекомендую часто обновлять список, из-за пинга будут лаги так как всё происходит в главном потоке.
В конец onEnable() добавить:
Java:
    // Синхронизация с БД
     Bukkit.getScheduler().runTaskTimer(this, () -> {
       bannedPlayers = db.getBannedPlayers();

       // Теперь кикаем забаненных
       Set<UUID> bannedIds = new HashSet<>();
       for(EditBan entry : bannedPlayers) {
         if(entry.type == EditBan.BAN) bannedIds.add(UUID.fromString(entry.UUID));
       }

       for(Player player : Bukkit.getOnlinePlayers()) {
         if(bannedIds.contains(player.getUniqueId())) {
           player.kickPlayer("Ты забанен");
         }
       }
     }, 20 * 120, 20 * 120); // каждые 2 мин
Это работает, спасибо большое!
 
Скачай у меня фикшенный FigAdmin, там у меня раз в минуту синхронизирует базу.
 
Не лучший вариант при входе к БД каждый раз обращаться, потом задержки Garbage Collector(встроенный сборщик мусора в Java) огромные устроит. Лучше по определенному интервалу проверяй.
 
Не лучший вариант при входе к БД каждый раз обращаться, потом задержки Garbage Collector(встроенный сборщик мусора в Java) огромные устроит. Лучше по определенному интервалу проверяй.
Ну со сборщиком ты перегнул. И потом он не может чистить, если есть ссылки на объект.
 
alexandrage, ваш FigAdmin у меня почему то не работает, без ошибок в консоли. С тем, что по ссылке, у меня проблема - в MySQL вместо Русских букв знаки '?'.
 
alexandrage, ваш FigAdmin у меня почему то не работает, без ошибок в консоли. С тем, что по ссылке, у меня проблема - в MySQL вместо Русских букв знаки '?'.
В моем и на кодировку фикс есть.
Никто даже не вспомнил про https://www.spigotmc.org/resources/commandsync.115/. Это решит вашу проблему без изменения плагина.
 
В моем и на кодировку фикс есть.
Никто даже не вспомнил про https://www.spigotmc.org/resources/commandsync.115/. Это решит вашу проблему без изменения плагина.
С БД удобнее. Кстати, в вашем плагине убраны некоторые команды, например /warn и при этом в языковом файле остался мусор. + не кикает тех, кто забанен, когда плагин синхронизируется.
 
Командсунс дерьмо полное( Я его юзал 4 месяца и убедился в этом.
Что с ним не так?
С БД удобнее. Кстати, в вашем плагине убраны некоторые команды, например /warn и при этом в языковом файле остался мусор. + не кикает тех, кто забанен, когда плагин синхронизируется.
Варны я убрал за ненадобностью.
А кик я допишу наверное, просто мне он не нужен был.
 
Что с ним не так?

Варны я убрал за ненадобностью.
А кик я допишу наверное, просто мне он не нужен был.
Ну как же, а например в NCP поставить warn, игроку будет писать, предупреждение, чтобы не использовал читы, и после нескольких предупреждений бан - это полезно.
 
Ну как же, а например в NCP поставить warn, игроку будет писать, предупреждение, чтобы не использовал читы, и после нескольких предупреждений бан - это полезно.
Если хочется остаться без игроков, то наверное да, полезно.
 
Идеальный вариант - использовать баны под банжикорд
 
Назад
Верх