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

Помогите Работа с конфигом

Тема в разделе "Разработка плагинов для новичков", создана пользователем Studenikin, 25 фев 2015.

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

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    Пишу (а вернее полностью переписываю) плагин для bungeecord, который перебрасывает игрока на другой сервер при кике, не знаю как реализовать правильно чтение из конфига
    Код:
            if(ev.getPlayer().getServer().getInfo() == this.plugin.getProxy().getServerInfo(this.plugin.getConfig().getString("/*параметр from*/")){
                ServerInfo kickTo = this.plugin.getProxy().getServerInfo(this.plugin.getConfig().getString("/*параметр to*/"));
                  if(kickedFrom == null || !kickedFrom.equals(kickTo)) {
                         ev.setCancelled(true);
                         ev.setCancelServer(kickTo);
                         }
            }else{
                ServerInfo kickTo = this.plugin.getProxy().getServerInfo(this.plugin.getConfig().getString("defaultserver"));
                  if(kickedFrom == null || !kickedFrom.equals(kickTo)) {
                         ev.setCancelled(true);
                         ev.setCancelServer(kickTo);
                         }
            }
    конфиг:
    Код:
    defaultserver: "hub"
    servers:
       1:
          from: "sg"
          to: "sghub"
       2:
          from: "sg2"
          to: "sghub"
       3:
          from: "sg3"
          to: "sghub"
    #может повторяться несколько раз
    
     
    Последнее редактирование: 25 фев 2015
  2. Хостинг MineCraft
    <
  3. Автор темы
    Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    то есть, если игрока кикает с сервера sg или sg2 его перебрасывает на сервер sghub, если с любого другого сервера, то его перебрасывает на сервер hub
     
  4. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Возьми все секции из конфига и перебирай.
     
  5. Автор темы
    Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    как?
     
  6. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Каком к верху, блин.
    Сейчас из своего плагина код вытащу...
     
  7. Автор темы
    Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    я просто не знаю, как сделать так, чтобы можно было добавлять неограниченное количество параметров
     
  8. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Из старого плагина вытащил
    Код:
            for(int i = 0; config.isSet("anomalies."+i); i++)
            {
                String name;
                int x,y,z;
                World world = getServer().getWorld(
                   config.getString("anomalies."+i+".world"));
                name = config.getString("anomalies."+i+".name");
                x = config.getInt("anomalies."+i+".x");
                y = config.getInt("anomalies."+i+".y");
                z = config.getInt("anomalies."+i+".z");
                   
                Location loc = new Location(world, x, y, z);
               
                Anomaly anom = Anomaly.valueOf(name);
                 
                anomalies.put(loc, anom);
            }
    
    Думаю, разберёшься.
    Есть ещё один способ, но я не помню его.
     
  9. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    @Plasticable у тебя только "anomalies.N", где N = любое число. А если нужно именные?
    @Studenikin см. сорцы TPPoint.
    EventHandlers->PlayerMove
    В подписи.
     
  10. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    У него как-раз такой случай, где нужны числовые.
     
  11. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    А точно, не заметил.
    Ну, всё равно будет полезно.
     
  12. Автор темы
    Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    спасибо за помощь, а можете прикрепить конфиг, с которым он работает?
     
  13. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Код:
    anomalies:
      '0':
        world: world
        x: 210.0
        y: 76.0
        z: 284.0
        name: TRAMPLINE
      '1':
        world: world
        x: 208.0
        y: 76.0
        z: 282.0
        name: TRAMPLINE
      '2':
        world: world
        x: 216.00285747487138
        y: 76.0
        z: 283.2510255972929
        name: FIRE
      '3':
        world: world
        x: 213.0
        y: 76.0
        z: 278.0
        name: FIRE
      '4':
        world: world
        x: 213.0
        y: 76.0
        z: 272.0
        name: FIRE
    
    
     
  14. Автор темы
    Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    В общем, вот что у меня получилось, ошибка с isSet - "This metod is undefined"
    Код:
     
             for(int i = 0; this.plugin.getProxy().getServerInfo(this.plugin.getConfig().isSet("servers."+i)); i++){
               if(ev.getPlayer().getServer().getInfo() == this.plugin.getProxy().getServerInfo(this.plugin.getConfig().getString("servers."+i+".from"))){
                   ServerInfo kickTo = this.plugin.getProxy().getServerInfo(this.plugin.getConfig().getString("servers."+i+".to"));
                   if(kickedFrom == null || !kickedFrom.equals(kickTo)) {
                       ev.setCancelled(true);
                       ev.setCancelServer(kickTo);
                   }
               }
             }
    
    [DOUBLEPOST=1424980506,1424898526][/DOUBLEPOST]ап
     

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