Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Sitmobedaf, 24 янв 2017.

  1. Автор темы
    Sitmobedaf

    Sitmobedaf Старожил Пользователь

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

    Вот этот FigAdmin - https://github.com/Majncraft/FigAdmin-Reloaded
     
  2. Хостинг MineCraft
    <
  3. L4c05t

    L4c05t Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Lacost
    можно обновлять базу после бана. Так будет лучше
     
  4. Автор темы
    Sitmobedaf

    Sitmobedaf Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SiT
    В MySQL данные заносятся, но другой сервер эти данные не берёт.
     
  5. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    PrepareStatment st = db.кактоПолучаемСтатмент("Select Table.player from table where Table.player = '"+playername+"'")
    ResultSet set = st.excutateUpdate();
    if (set.next){
    Игрок забанен.
    }

    Писал по памяти.
     
  6. GoodCoder

    GoodCoder Активный участник Пользователь

    Баллы:
    76
    Не самый лучший плагин. Может тормозить при большом кол-ве банов. Поэтому не рекомендую часто обновлять список, из-за пинга будут лаги так как всё происходит в главном потоке.
    В конец onEnable() добавить:
    Код:
        // Синхронизация с БД
         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 мин
     
  7. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    РУКАЛИЦО.

    Забаненые смогут играть с киком раз в две минуты.
     
  8. GoodCoder

    GoodCoder Активный участник Пользователь

    Баллы:
    76
  9. Автор темы
    Sitmobedaf

    Sitmobedaf Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SiT
    Это работает, спасибо большое!
     
  10. L4c05t

    L4c05t Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Lacost
    обновлять по кд на каждом сервере тогда
     
  11. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Скачай у меня фикшенный FigAdmin, там у меня раз в минуту синхронизирует базу.
     
  12. maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    maksim182003
    Не лучший вариант при входе к БД каждый раз обращаться, потом задержки Garbage Collector(встроенный сборщик мусора в Java) огромные устроит. Лучше по определенному интервалу проверяй.
     
  13. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ну со сборщиком ты перегнул. И потом он не может чистить, если есть ссылки на объект.
     
  14. Автор темы
    Sitmobedaf

    Sitmobedaf Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SiT
    alexandrage, ваш FigAdmin у меня почему то не работает, без ошибок в консоли. С тем, что по ссылке, у меня проблема - в MySQL вместо Русских букв знаки '?'.
     
  15. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    В моем и на кодировку фикс есть.[DOUBLEPOST=1485415315,1485358113][/DOUBLEPOST]Никто даже не вспомнил про https://www.spigotmc.org/resources/commandsync.115/. Это решит вашу проблему без изменения плагина.
     
  16. Автор темы
    Sitmobedaf

    Sitmobedaf Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SiT
    С БД удобнее. Кстати, в вашем плагине убраны некоторые команды, например /warn и при этом в языковом файле остался мусор. + не кикает тех, кто забанен, когда плагин синхронизируется.
     
  17. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Командсунс дерьмо полное( Я его юзал 4 месяца и убедился в этом.
     
  18. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Что с ним не так?[DOUBLEPOST=1485417565,1485417515][/DOUBLEPOST]
    Варны я убрал за ненадобностью.[DOUBLEPOST=1485417848][/DOUBLEPOST]А кик я допишу наверное, просто мне он не нужен был.
     
  19. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Бывет такое что перестаёт тупо пересылать команды пока банджу не рестартнешь.
     
  20. Автор темы
    Sitmobedaf

    Sitmobedaf Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SiT
    Ну как же, а например в NCP поставить warn, игроку будет писать, предупреждение, чтобы не использовал читы, и после нескольких предупреждений бан - это полезно.
     
  21. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Если хочется остаться без игроков, то наверное да, полезно.
     

Поделиться этой страницей