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

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

Discussion in 'Разработка плагинов для новичков' started by Sitmobedaf, Jan 24, 2017.

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

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

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

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

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

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

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

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    РУКАЛИЦО.

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

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

    Trophy Points:
    76
  9. Автор темы
    Sitmobedaf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Share This Page