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

Помогите Не работает команды

Тема в разделе "Разработка плагинов для новичков", создана пользователем TorwaldOswarld, 28 ноя 2017.

Статус темы:
Закрыта.
  1. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    Что? К чему это ?
     
  2. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    К тому что у тебя там сломалось. И используй ChatColor.translateAlternateColorCodes()
     
  3. JappiRock

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

    Баллы:
    46
    Имя в Minecraft:
    JappiRockSW
  4. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    Я пробую и в начале цикла выводить просто надпись ,ничего не работает
     
  5. iD3LSY

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

    Баллы:
    76
    Ты какой то глупый. Никто тебе сможет поможет, ты не можешь нормально сказать, что именно не работает...
     
  6. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    О чем можно вести разговор ,если ты не знаешь ,что такое цикл for ,вот тебе полный класс
    до строки for (String s: items) работает ,все что идет дальше ,не работает
    Код:
    public class Core extends JavaPlugin implements Listener{
       
        private String message1;
    
       
        static WeakHashMap<Player, Long> usertime = new WeakHashMap<Player, Long>();
        List<String> items = this.getConfig().getStringList("items");
        List<String> players = new ArrayList<String>();
    
       
        @Override
        public void onEnable() {
            File config = new File(getDataFolder() + File.separator + "config.yml");
            if(!config.exists()){
                getLogger().info("Creating new ,file config...");
                getConfig().options().copyDefaults(true);
                saveDefaultConfig();
            }
            getLogger().info("[ChristmasPresent] Плагин включен.");
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
       
       
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(sender instanceof Player) {
                Player p = (Player)sender;
                if(check((Player) sender, 5000)) {
                    if(cmd.getName().equalsIgnoreCase("present")) {  
                            for (String s: items){
                                ItemStack item = new ItemStack(Material.getMaterial(s.toUpperCase()));
                                ItemMeta meta = item.getItemMeta();
                                meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("items." + s + ".name")));
                                meta.setLore(this.getConfig().getStringList("items." + s + "lore").stream().map(str -> ChatColor.translateAlternateColorCodes('&', str)).collect(Collectors.toList()));
                                item.setItemMeta(meta);
                                p.getInventory().addItem(new ItemStack(item));
                                p.sendMessage(message1.replace("&", "§"));
                            }
                    }
                    return true;
                }
            }
            return true;
        }
    
        static boolean check(Player user, long tmp) {
            long time = System.currentTimeMillis();
            Long last = usertime.get(user);
            if(last!= null) {
                if((time-last)<tmp) {
                    user.sendMessage("§7§l[§4§lНовогодний Подарок§7§l] §e§lСледующий подарок будет доступен через§e§l " + (tmp-(time-last)) + " §e§lминут");
                    return false;
                }
            }
            usertime.put(user, time);
            return true;
        }                                
    }
    
     
  7. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Если нету ошибок - делай дебаг, if где-то вернул false
     
  8. iD3LSY

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

    Баллы:
    76
    Мда, ты реал какой то отбитый в задницу. Ты кидаешь 1 кусок кода, говоришь: "не работает!!!". Что не работает - не объясняешь... Ты не понимаешь, что я спрашиваю? Алло, что не работает?
     
  9. xDark

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

    Баллы:
    96
    message1 у тебя нулл, чо тут не понятного - то...
    Писец, докатились...
     
  10. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    ТС же сказал, что у него не выполняется содержимое цикла for. Про исключения ничего не говорил.
    Получается, просто список items пуст. Или я чего-то не понимаю?
     
  11. iD3LSY

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

    Баллы:
    76
    Если у него реально список пустой, то он еще глупее, чем писал я раньше...

    UPD: вот твой фикс. Пробуй отправить игроку items.size(). Если он 0, то у тебя в конфиге нету объекта с ключом "items".
     
  12. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    В общем ,оказывается проблема с конфигом,выдает в консоль nulll ,да,возможно я еще не все знаю,именно поэтому пишу вам,чтобы помогли разобраться
    Вот мой код
    Код:
    package ru.PuxTa4.Main;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    import java.util.WeakHashMap;
    import java.util.logging.Level;
    
    import org.apache.commons.io.FileUtils;
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.*********ventory.ItemStack;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin implements Listener{
        
        static WeakHashMap<Player, Long> usertime = new WeakHashMap<Player, Long>();
        protected static YamlConfiguration config;
        
        public static YamlConfiguration getConfig(JavaPlugin pl, String configName) {
            File file = new File(pl.getDataFolder(), configName);
            if (file.isDirectory()) {
                file.delete();
            }
            if (!file.exists()) {
                try (InputStream i = pl.getClass().getClassLoader().getResourceAsStream(configName)) {
                    FileUtils.copyInputStreamToFile(i, file);
                } catch (IOException e) {
                     pl.getLogger().log(Level.WARNING, "Ошибка при создании файла " + configName);
                }
                return new YamlConfiguration();
            }
            return YamlConfiguration.loadConfiguration(file);
        }
          
        public static void loadconfig() {
            config.addDefault("warrior.items", "-IRON_SWORD");
            config.options().copyDefaults(true);
            config.addDefault("broadcast1",
                    "&4Новый подарок будет доступен через &5{time} &4секунды.");
            config.addDefault("cooldown", Integer.valueOf(10));
        }
        @Override
        public void onEnable() {
            saveDefaultConfig();
            getLogger().info("[ChristmasPresent] Плагин включен.");
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
     
        
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(sender instanceof Player) {
                Player p = (Player)sender;
                if(check((Player) sender, 5000)) {
                    if(cmd.getName().equalsIgnoreCase("present")) {   
                        List<String> items = config.getStringList("warrior.items.");
                        final short[] number = {0};
                        for (String i : items){
                            
                            ItemStack warrior1 = new ItemStack(Material.getMaterial(i.toUpperCase()));
                            p.getInventory().setItem(number[0], warrior1);
                            number[0]++;
                            p.sendMessage(String.valueOf(getConfig().getStringList("warrior.items.")));
                            
                        }
                            items.size();
                    }
                    return true;
                }
            }
            return true;
        }
        
         static boolean check(Player user, long tmp) {
                long time = System.currentTimeMillis();
                Long last = usertime.get(user);
                if(last!= null) {
                    if((time-last)<tmp) {
                        user.sendMessage("§7§l[§4§lНовогодний Подарок§7§l] §e§lСледующий подарок будет доступен через§e§l " + (tmp-(time-last)) + " §e§lминут");
                        return false;
                    }
                }
                usertime.put(user, time);
                return true;
            }                 
        @Override
        public void onDisable() {
            try {
                config.save("config.yml");
           } catch (IOException ex) {
                this.getLogger().log(Level.WARNING, "Ошибка при сохранении конфигов", ex);
           }
        }
    }
    
    Вот ошибка в консоли [​IMG]
    Помогите пожалуйста.
     
  13. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Он у тебя на 64 строку ругается, а там, вроде как, декларация переменной и все
     
  14. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    а как исправить ?
     
  15. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Убери точку после items, она там не нужна, из-за этого скорее всего кидает null
    Код:
                           p.sendMessage(String.valueOf(getConfig().getStringList("warrior.items.")));
    
     
  16. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    не помогло
     
  17. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    Проблема в том,что конфиг пустой
     
  18. xDark

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

    Баллы:
    96
    ...
     
  19. Автор темы
    TorwaldOswarld

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

    Баллы:
    78
    Имя в Minecraft:
    PuxTa4
    я конечно все понимаю,критика все дела , но серьезно ,лучше бы помог новичку
     
  20. xDark

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

    Баллы:
    96
    Тебе бл8ть и так все разжевали.
     
Статус темы:
Закрыта.

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