Помогите Почему не создаёт данные в конфиге?

  • Автор темы Автор темы Welester
  • Дата начала Дата начала

Welester

Участник
Пользователь
Баллы
36
Имя в Minecraft
Welester
Данные тупо не содаются в конфиге, а когда пишешь комманду, то пишет ошибку.

Java:
public class main extends JavaPlugin implements Listener {
   
    private int team;
    private int ongame;
    private int respawntime;
   
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getConfig().options().copyDefaults(true);
        saveDefaultConfig();
       
        BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
       
        if(getConfig().getString("config." + ".team1name") == null){
            getConfig().set("config." + ".team1name", "red");
            getConfig().set("config." + ".team2name", "blue");
           
            getConfig().set("config." + ".respawntime", 10);
            getConfig().set("config." + ".ptpb", 5);
            getConfig().set("config." + ".startmoney", 500);
        }
    }
    public void onDisable(){
        getConfig().options().copyDefaults(true);
        saveConfig();
    }
   
    @Override
    public boolean onCommand(CommandSender sender,Command cmd,String label, String[] args){
       
        if(cmd.getName().equalsIgnoreCase("bnewarena")){
            if(sender.hasPermission("bl.create")){
                String name = args[0];
               
                getConfig().set("arenas." + name, name);
                getConfig().set("arenas." + name + "team1x", 0);
                getConfig().set("arenas." + name + "team1y", 0);
                getConfig().set("arenas." + name + "team1z", 0);
               
                getConfig().set("arenas." + name + "team2x", 0);
                getConfig().set("arenas." + name + "team2y", 0);
                getConfig().set("arenas." + name + "team2z", 0);
               
                getConfig().set("arenas." + name + "active", 0);
               
                if(getConfig().getString("arenas." + name) != null){
                    sender.sendMessage("Арена " + name + "была создана.");
                }
               
            }else{
                sender.sendMessage("Нету прав.");
            }
           
        }
       
       
        return true;
    }
   
    public void openGUI(Player p){
        Inventory inv = Bukkit.createInventory(null, 9,ChatColor.AQUA +  "ыыыыы");
        ItemStack digger = new ItemStack(Material.IRON_HOE);
        ItemMeta diggermeta = digger.getItemMeta();
       
        diggermeta.setDisplayName(ChatColor.DARK_GREEN + "ыыыыы");
        digger.setItemMeta(diggermeta);
       
        inv.setItem(0, digger);
       
        p.openInventory(inv);
    }
   
    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent e){

            respawntime = getConfig().getInt("config." + ".respawntime");

    }
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){
        Player p = e.getPlayer();
        p.sendMessage("AS");
        respawntime = 15;
        getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
       
            @Override
            public void run() {
                if(respawntime > 0){
                    respawntime = respawntime - 1;
                    p.sendMessage("s" + respawntime);
                }
               
            }
            },0L,20L);
       
    }
   
}
 
getConfig().options().copyDefaults(true) - Удалить, написать: saveDefaultConfig();

После установки данных в конфиг, конфиг сохранить надо бл*ть, а то изменения не сохранятся. х*я поворот. (гуглить надо бл*ть).
getConfig().save(new File(getDataFolder(), "config.yml")); - конструкцию вроде как надо завернуть в try-catch (можно в принципе и saveConfig())

Для того что бы работали команды их надо сначала записать в файле plygin.yml
Посмотреть вложение 45372

потом в главном классе в onEnable надо зарегистрировтаь команду
getCommand("RandomCommands").setExecutor(new Cmds());

Класс в котором регистрируется команда, должен реализовываться как CommandExecutor
прежде чем бежать пилить свою "топовую" миниигру, либо другой плагин, рекомендуется ознакомиться с азами создания плагинов

https://www.youtube.com/playlist?list=PLXYAK0h-rm_EWNeQAkXJBkAqvtCXRUo3z

В плейлисте некоторые видосы пропущены, но их легко найти в "похожих видео"
Умный такой... Без всех этих изысков всё прекрасно работает, по крайней мере до этого писал всё нормально с командами работало. Про конфиг ты конечно молодец, такое ощущение что никто не знает о том, что там надо писать команду, это в любом гайде говорят.
getConfig().options().copyDefaults(true) - Удалить, написать: saveDefaultConfig();

После установки данных в конфиг, конфиг сохранить надо бл*ть, а то изменения не сохранятся. х*я поворот. (гуглить надо бл*ть).
getConfig().save(new File(getDataFolder(), "config.yml")); - конструкцию вроде как надо завернуть в try-catch (можно в принципе и saveConfig())

Для того что бы работали команды их надо сначала записать в файле plygin.yml
Посмотреть вложение 45372

потом в главном классе в onEnable надо зарегистрировтаь команду
getCommand("RandomCommands").setExecutor(new Cmds());

Класс в котором регистрируется команда, должен реализовываться как CommandExecutor
прежде чем бежать пилить свою "топовую" миниигру, либо другой плагин, рекомендуется ознакомиться с азами создания плагинов

https://www.youtube.com/playlist?list=PLXYAK0h-rm_EWNeQAkXJBkAqvtCXRUo3z

В плейлисте некоторые видосы пропущены, но их легко найти в "похожих видео"
Хах, гайды охеренные, гайд про работу с конфигом не актуален ещё с 2015, а остальные гайды сделаны явно с костылями, если storm или как его там, он пишет то же самое, только если у dak получается примерно 100 строк, у этого же получается за 25 сделать.
 
окей, но почему то у меня по гайдам dak все работало, а у тебя по гайдам *хз че за чел ваще первый раз вижу* нихрена не пашет.

какой можно сделать вывод?
 
окей, но почему то у меня по гайдам dak все работало, а у тебя по гайдам *хз че за чел ваще первый раз вижу* нихрена не пашет.

какой можно сделать вывод?
Эммм, во первых, я ещё давно в 2016 году его смотрел, могу сразу сказать, он искал тут темы, и костыли по ним писал.
 
ClusterStorm

Шторм, объясняет все доходчиво, я на этих гайдах вырос ;) + @Mr_RoboMan помогал.

А Энви, хз что такое, объясняет как...
*посмотрел пару туторов*
*Понял, что ничего не понял*
*Ушел курить доки*
теперь че то сваять могу (ах, да ну еще тут по началу помогли здорово. спасибо этим людям)
 
Java:
public class main extends JavaPlugin implements Listener {
   
    private int respawntime;
   
    public void onEnable(){
        saveDefaultConfig();
       
      //Это не работает и не будет работать
        /*if(getConfig().getString("config." + ".team1name") == null){
            getConfig().set("config." + ".team1name", "red");
            getConfig().set("config." + ".team2name", "blue");
           
            getConfig().set("config." + ".respawntime", 10);
            getConfig().set("config." + ".ptpb", 5);
            getConfig().set("config." + ".startmoney", 500);
        }*/
        //Регистрируем свои слушатели только после того, как все инициализировано
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }
   
    public void onDisable(){
        saveConfig();
    }
   
    @Override
    public boolean onCommand(CommandSender sender,Command cmd,String label, String[] args){
        if(!sender.hasPermission("bl.create")){
            sender.sendMessage("Нету прав.");
            return true;
        }
       
        String name = args.length > 0 ? args[0] : "default";
     
        getConfig().set("arenas." + name, name);
        getConfig().set("arenas." + name + "team1x", 0);
        getConfig().set("arenas." + name + "team1y", 0);
        getConfig().set("arenas." + name + "team1z", 0);
     
        getConfig().set("arenas." + name + "team2x", 0);
        getConfig().set("arenas." + name + "team2y", 0);
        getConfig().set("arenas." + name + "team2z", 0);
     
        getConfig().set("arenas." + name + "active", 0);
     
        if(getConfig().getString("arenas." + name) != null){
            sender.sendMessage("Арена " + name + "была создана.");
        }
        return true;
    }
   
    public void openGUI(Player p){
        Inventory inv = Bukkit.createInventory(null, 9,ChatColor.AQUA +  "ыыыыы");
       
        ItemStack digger = new ItemStack(Material.IRON_HOE);
        ItemMeta diggermeta = digger.getItemMeta();
        diggermeta.setDisplayName(ChatColor.DARK_GREEN + "ыыыыы");
        digger.setItemMeta(diggermeta);
        inv.setItem(0, digger);
       
        p.openInventory(inv);
    }
   
    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent e){
       //Че это?
        //respawntime = getConfig().getInt("config." + ".respawntime");

    }
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){
        Player p = e.getPlayer();
        p.sendMessage("AS");
        respawntime = 15;
        getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
            @Override
            public void run() {
                if(respawntime > 0){
                    respawntime = respawntime - 1;
                    p.sendMessage("s" + respawntime);
                }
               
            }
        }, 0L, 20L);
    }
}
 
Java:
public class main extends JavaPlugin implements Listener {
  
    private int respawntime;
  
    public void onEnable(){
        saveDefaultConfig();
      
      //Это не работает и не будет работать
        /*if(getConfig().getString("config." + ".team1name") == null){
            getConfig().set("config." + ".team1name", "red");
            getConfig().set("config." + ".team2name", "blue");
          
            getConfig().set("config." + ".respawntime", 10);
            getConfig().set("config." + ".ptpb", 5);
            getConfig().set("config." + ".startmoney", 500);
        }*/
        //Регистрируем свои слушатели только после того, как все инициализировано
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }
  
    public void onDisable(){
        saveConfig();
    }
  
    @Override
    public boolean onCommand(CommandSender sender,Command cmd,String label, String[] args){
        if(!sender.hasPermission("bl.create")){
            sender.sendMessage("Нету прав.");
            return true;
        }
      
        String name = args.length > 0 ? args[0] : "default";
    
        getConfig().set("arenas." + name, name);
        getConfig().set("arenas." + name + "team1x", 0);
        getConfig().set("arenas." + name + "team1y", 0);
        getConfig().set("arenas." + name + "team1z", 0);
    
        getConfig().set("arenas." + name + "team2x", 0);
        getConfig().set("arenas." + name + "team2y", 0);
        getConfig().set("arenas." + name + "team2z", 0);
    
        getConfig().set("arenas." + name + "active", 0);
    
        if(getConfig().getString("arenas." + name) != null){
            sender.sendMessage("Арена " + name + "была создана.");
        }
        return true;
    }
  
    public void openGUI(Player p){
        Inventory inv = Bukkit.createInventory(null, 9,ChatColor.AQUA +  "ыыыыы");
      
        ItemStack digger = new ItemStack(Material.IRON_HOE);
        ItemMeta diggermeta = digger.getItemMeta();
        diggermeta.setDisplayName(ChatColor.DARK_GREEN + "ыыыыы");
        digger.setItemMeta(diggermeta);
        inv.setItem(0, digger);
      
        p.openInventory(inv);
    }
  
    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent e){
       //Че это?
        //respawntime = getConfig().getInt("config." + ".respawntime");

    }
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){
        Player p = e.getPlayer();
        p.sendMessage("AS");
        respawntime = 15;
        getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
            @Override
            public void run() {
                if(respawntime > 0){
                    respawntime = respawntime - 1;
                    p.sendMessage("s" + respawntime);
                }
              
            }
        }, 0L, 20L);
    }
}
Воп про сет ты зря, просто я убрал там кое что и всё прекрасно работает.
 
respawntime = respawntime -1;

а чем не устроил буржуйский и еретичный respawntime--;
Поговаривают, такая запись дико экономит время.
 
а чем не устроил буржуйский и еретичный respawntime--;
Поговаривают, такая запись дико экономит время.
с unity уже привычка пошла, ибо там так пишут, так как там иногда не просчитывает если так написать
+1 За говнокод, когда можно так getConfig().get("path","path"); Создаст само, если нету.
нуууу, как умею, помойму ты сам мне давно кидал гайд где именно так и делали.
 
*посмотрел пару туторов*
*Понял, что ничего не понял*
*Ушел курить доки*
теперь че то сваять могу (ах, да ну еще тут по началу помогли здорово. спасибо этим людям)
С какого канала пару туторов? Да, да, я про то, что поможет только в начале, потом наставник, а потом уже доки (хотя у кого как)
 
с unity уже привычка пошла, ибо там так пишут, так как там иногда не просчитывает если так написать

нуууу, как умею, помойму ты сам мне давно кидал гайд где именно так и делали.
Ты меня с кем то путаешь.
 
Воп про сет ты зря, просто я убрал там кое что и всё прекрасно работает.
Твоё "кое что" никто не видел. Твой код в шапке в принципе работает (и не работает в т.ч.) не так, как ты это придумал.
 
Назад
Верх