1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Sponge: Будущее Bukkit и Minecraft моддинга в целом

Тема в разделе "Sponge", создана пользователем ql_Nik_lp, 10 сен 2014.

  1. Sambon_

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

    Баллы:
    88
    Skype:
    morbla_kun
    Имя в Minecraft:
    Satael
    Пиши тогда )
     
  2. Mr_RoboMan

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

    Баллы:
    123
    Кароче мне надоело писать нормально, я решил плюнуть на всех и написать говнокодом, но так как он зароботал, на все остальное пофиг :D
    Код:
        public Pair<ConfigurationLoader<CommentedConfigurationNode>, ConfigurationNode> activateConfig(String path) throws IOException {
            path = "/" + path;
    
            String[] parts = path.split("/");
            String configName = parts[parts.length-1];
    
            new File(new File("").getAbsolutePath() + "\\mods\\ИМЯ_ТВОЕГО_ПЛАГИНА-CONFIGS").mkdirs();
    
            File configFile = new File(new File("").getAbsolutePath() + "\\mods\\ИМЯ_ТВОЕГО_ПЛАГИНА-CONFIGS\\" + configName);
            if (!configFile.exists()) {
                configFile.createNewFile();
                URL configDefaultsURL = this.getClass().getResource(path);
                ConfigurationLoader<CommentedConfigurationNode> configDefaultsLoader =
                        HoconConfigurationLoader.builder().setURL(configDefaultsURL).build();
                ConfigurationNode defaultsNode = configDefaultsLoader.load();
                ConfigurationLoader<CommentedConfigurationNode> configLoader =
                        HoconConfigurationLoader.builder().setFile(configFile).build();
                ConfigurationNode configNode = configLoader.load();
                configNode.mergeValuesFrom(defaultsNode);
                configLoader.save(configNode);
                return new Pair(configLoader, configNode);
            } else {
                ConfigurationLoader<CommentedConfigurationNode> configLoader =
                        HoconConfigurationLoader.builder().setFile(configFile).build();
                ConfigurationNode configNode = configLoader.load();
                configLoader.save(configNode);
                return new Pair(configLoader, configNode);
            }
         }
    
     
  3. alexandrage

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

    Баллы:
    173
    Долпаебы не лечатся, это правда.
     
  4. InterWall

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

    Баллы:
    173
  5. alexandrage

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

    Баллы:
    173
  6. Larin

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

    Баллы:
    103
  7. Mr_RoboMan

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

    Баллы:
    123
    Та ладно вам, сделал и сделал, работает хоть как, забудьте уже)
     
  8. alexandrage

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

    Баллы:
    173
    Потому что доки не читает. При том что это стандарт жабы.
    this.getClass().getResource("defaultConfig.conf") Это значит, что конфиг должен лежать рядом с мейн классом плагина, в той же папке.
    И да, конфиги сейчас в json формате, не yml.
    И это правильно, json не такой капризный к синтаксису, как yml.
     
  9. InterVi

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

    Баллы:
    173
    А конкретней? Тут дело в библиотеках для ямла, они жопные.
     
  10. alexandrage

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

    Баллы:
    173
    gson в разы удобнее.
     
  11. Larin

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

    Баллы:
    103
    1. Это значит, что файл лежит в той же директории, где лежит класс, у которого вызван метод getResource()
    2. Проспись, у него файл не сохранялся, считать файл он смог. У меня такое было, когда я 2 дня подряд не спал =)
     
  12. alexandrage

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

    Баллы:
    173
    Лол :D.
     
  13. DragonX

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

    Баллы:
    173
    Чо там у губки? Каков её текущий статус?
     
  14. Larin

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

    Баллы:
    103
    Пилят API 5.0, уже есть бета SpongeForge для 1.9.4 на API 5.0.
     
  15. DragonX

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

    Баллы:
    173
    Она уже юзабельна? Плагины, моды? Много их?
     
  16. Larin

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

    Баллы:
    103
    SpongeForge вполне юзабелен. Если надо worldguard, то ставь worldguard-forge.
     
  17. Will Orion Z

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

    Баллы:
    76
    Имя в Minecraft:
    willorion
    Плагинов под 5.0 еще нет. По крайней мере, вчера так было. Под 4.1, тобишь под версию 1.8.9 плагинов маловато, да и сама платформа еще не отлажена, и соответственно не юзабельна (для обычных игроков).

    P.S.
    Мне кажется, или Sponge - это вечная бетка для энтузиастов и тестеров, как в случае с другими альтернативными plugin api, коих было десяток? Они еще 4 платформу не доработали, а уже взялись за 5, и то спустя 100 лет после релиза 1.9. На крупных проектах sponge еще оооченб не скоро будут использовать...
    Ты имел виду forgeessentials? Его забросили, самая последняя бета версия под 1.8.
     
  18. Larin

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

    Баллы:
    103
    Я имел ввиду worldguard-forge, но потом вспомнил, что только worldedit-forge есть.
     
  19. Mr_RoboMan

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

    Баллы:
    123
    Подскажите ребят, как можно присвоить игроку инвентарь, или слоты?
    Мне надо сначало очистить игроку инвентарь (это я смог сделать) а потом восстановить его.. В бакките я такое делал с легкостью, а вот в спонже не могу додуматься...
    Я думаю над чем-то вроде такого:
    Код:
    public class PlayerData {
    
        private Player player;
    
        public CarriedInventory inventory;
    
        public PlayerData(Player player) {
            this.player = player;
        }
    
        public void saveInfo() {
            inventory = player.getInventory();
            player.getInventory().clear();
        }
    
        public void resetInfo() {
            //Вот тут надо чет сделать
        }
    }
    Если кто подскажет как с остальными параметрами (эффекты, жизни, голод, и все остальное) сделать также (сохранить, удалить/сбросить на стандартное значение а потом восстановить) тоже буду очень благодарен :D
     
  20. alexandrage

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

    Баллы:
    173
    У игрока же 3 инвентаря щас, котейер, екстра контейнер и армор контейнер.
    В армор контейнер нужно сетать AIR, в екстра не помню, ибо мало изучал 1.9.
     

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