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

Кароче мне надоело писать нормально, я решил плюнуть на всех и написать говнокодом, но так как он зароботал, на все остальное пофиг 😁
Код:
    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);
        }
     }
 
Кароче мне надоело писать нормально, я решил плюнуть на всех и написать говнокодом, но так как он зароботал, на все остальное пофиг 😁
Код:
    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);
        }
     }
Долпаебы не лечатся, это правда.
 
Та ладно вам, сделал и сделал, работает хоть как, забудьте уже)
 
У него не сохранялся файл, exception какой-то, саму ошибку не показал.
Потому что доки не читает. При том что это стандарт жабы.
this.getClass().getResource("defaultConfig.conf") Это значит, что конфиг должен лежать рядом с мейн классом плагина, в той же папке.
И да, конфиги сейчас в json формате, не yml.
И это правильно, json не такой капризный к синтаксису, как yml.
 
Потому что доки не читает. При том что это стандарт жабы.
this.getClass().getResource("defaultConfig.conf") Это значит, что конфиг должен лежать рядом с мейн классом плагина, в той же папке.
И да, конфиги сейчас в json формате, не yml.
И это правильно, json не такой капризный к синтаксису, как yml.
1. Это значит, что файл лежит в той же директории, где лежит класс, у которого вызван метод getResource()
2. Проспись, у него файл не сохранялся, считать файл он смог. У меня такое было, когда я 2 дня подряд не спал =)
 
1. Это значит, что файл лежит в той же директории, где лежит класс, у которого вызван метод getResource()
2. Проспись, у него файл не сохранялся, считать файл он смог. У меня такое было, когда я 2 дня подряд не спал =)
Лол 😁.
 
Чо там у губки? Каков её текущий статус?
 
Она уже юзабельна? Плагины, моды? Много их?
Плагинов под 5.0 еще нет. По крайней мере, вчера так было. Под 4.1, тобишь под версию 1.8.9 плагинов маловато, да и сама платформа еще не отлажена, и соответственно не юзабельна (для обычных игроков).

P.S.
Мне кажется, или Sponge - это вечная бетка для энтузиастов и тестеров, как в случае с другими альтернативными plugin api, коих было десяток? Они еще 4 платформу не доработали, а уже взялись за 5, и то спустя 100 лет после релиза 1.9. На крупных проектах sponge еще оооченб не скоро будут использовать...
Если надо worldguard, то ставь worldguard-forge.
Ты имел виду forgeessentials? Его забросили, самая последняя бета версия под 1.8.
 
Плагинов под 5.0 еще нет. По крайней мере, вчера так было. Под 4.1, тобишь под версию 1.8.9 плагинов маловато, да и сама платформа еще не отлажена, и соответственно не юзабельна (для обычных игроков).

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

Ты имел виду forgeessentials? Его забросили, самая последняя бета версия под 1.8.
Я имел ввиду worldguard-forge, но потом вспомнил, что только worldedit-forge есть.
 
Подскажите ребят, как можно присвоить игроку инвентарь, или слоты?
Мне надо сначало очистить игроку инвентарь (это я смог сделать) а потом восстановить его.. В бакките я такое делал с легкостью, а вот в спонже не могу додуматься...
Я думаю над чем-то вроде такого:
Код:
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() {
        //Вот тут надо чет сделать
    }
}
Если кто подскажет как с остальными параметрами (эффекты, жизни, голод, и все остальное) сделать также (сохранить, удалить/сбросить на стандартное значение а потом восстановить) тоже буду очень благодарен 😁
 
Подскажите ребят, как можно присвоить игроку инвентарь, или слоты?
Мне надо сначало очистить игроку инвентарь (это я смог сделать) а потом восстановить его.. В бакките я такое делал с легкостью, а вот в спонже не могу додуматься...
Я думаю над чем-то вроде такого:
Код:
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() {
        //Вот тут надо чет сделать
    }
}
Если кто подскажет как с остальными параметрами (эффекты, жизни, голод, и все остальное) сделать также (сохранить, удалить/сбросить на стандартное значение а потом восстановить) тоже буду очень благодарен 😁
У игрока же 3 инвентаря щас, котейер, екстра контейнер и армор контейнер.
В армор контейнер нужно сетать AIR, в екстра не помню, ибо мало изучал 1.9.
 
Назад
Верх Низ