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

Помогите Не могу получить значение getConfig().getStringList(...);

Тема в разделе "Разработка плагинов для новичков", создана пользователем xDark, 27 июн 2016.

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

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Здравствуйте форумчане, мне нужно написать фикс на запрещенные ID на табличке, которые я укажу в config.yml, но при попытке написать код, выдает ошибку, вот код:
    Код:
    package ru.xDark.xAntiHackEvent.MAIN;
    
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Pig;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.event.block.SignChangeEvent;
    import org.bukkit.event.player.PlayerChatEvent;
    import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerVelocityEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class XMAINCLASS extends JavaPlugin implements Listener {
        private List<String> consoleonly;
        private List<String> removewords;
        private List<String> bancommand;
        private List<String> bannedID;
        @Override
        public void onEnable() {
            saveDefaultConfig();
            consoleonly = this.getConfig().getStringList("consoleonly");
            removewords = this.getConfig().getStringList("removewords");
            bancommand = this.getConfig().getStringList("bancommand");
            bannedID = this.getConfig().getStringList("ChestShop");
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            System.out.println("xAntiHackEvent enabled!");
            if (Bukkit.getServer().getPluginManager().getPlugin("PermissionsEx") !=null ) {
                System.out.println("[xAntiHackEvent] PermissionsEx found!!");
            }else{
                System.out.println("[xAntiHackEvent] PermissionsEx not found! Plugin disabled!");
                Bukkit.getServer().getPluginManager().disablePlugin(this);
            }
        }
        @Override
        public void onDisable() {
            System.out.println("xAntiHackEvent disabled!");
        }
        @EventHandler(priority = EventPriority.LOWEST)
        public void onPreCommand(PlayerCommandPreprocessEvent event)
        {
            Player p = event.getPlayer();
            String message = event.getMessage();
            message = message.substring(1).split(" ")[0];
         
            if(consoleonly.contains(message)) {
            {
            p.sendMessage(ChatColor.RED + "Данная команда заблокирована! Используйте консоль!");
            event.setCancelled(true);
            }
            }
        }
        @EventHandler
        public void onPlace(BlockPlaceEvent event)
        {
            Player p = event.getPlayer();
            Block b = (Block) event.getBlock();
            String PreventBlock = this.getConfig().getString("Messages.BLOCK_IS_NOT_ALLOWED");
         
            if (b.getType() == Material.TNT) {
                b.setType(Material.AIR);
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventBlock));
                event.setCancelled(true);
            }
            if (b.getType() == Material.BEDROCK) {
                b.setType(Material.AIR);
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventBlock));
                event.setCancelled(true);
            }
        }
        @EventHandler
        public void onBreak(BlockBreakEvent event)
        {
            Player p = event.getPlayer();
            Block b = (Block) event.getBlock();
            String PreventBlockBreak = this.getConfig().getString("Messages.BLOCK_BREAK_IS_NOT_ALLOWED");
         
            if (b.getType() == Material.BEDROCK) {
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventBlockBreak));
                event.setCancelled(true);
            }
        }
        @EventHandler
        public void signCreate(SignChangeEvent sign)
        {
            Player player = sign.getPlayer();
            Block b = (Block) sign.getBlock();
            String PreventSign = this.getConfig().getString("Messages.SIGN_IS_NOT_ALLOWED");
            String SignText = this.getConfig().getString("Messages.SIGN_FIX_TEXT");
         
            if (sign.getLine(2).contains("EB")){
                player.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventSign));
                sign.setLine(0, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(1, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(2, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(3, ChatColor.translateAlternateColorCodes('&', SignText));
            }
            if (sign.getLine(2).contains("eb")){
                player.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventSign));
                sign.setLine(0, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(1, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(2, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(3, ChatColor.translateAlternateColorCodes('&', SignText));
        }
            if (sign.getLine(2).contains("Eb")){
                player.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventSign));
                sign.setLine(0, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(1, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(2, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(3, ChatColor.translateAlternateColorCodes('&', SignText));
            }
            if (sign.getLine(2).contains("eB")){
                player.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventSign));
                sign.setLine(0, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(1, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(2, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(3, ChatColor.translateAlternateColorCodes('&', SignText));
            }
            if (sign.getLine(3).contains(ChatColor.translateAlternateColorCodes('&', bannedID))) {
                player.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventSign));
                sign.setLine(0, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(1, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(2, ChatColor.translateAlternateColorCodes('&', SignText));
                sign.setLine(3, ChatColor.translateAlternateColorCodes('&', SignText));
            }
        }
        @EventHandler
        public void velocityEvent(PlayerVelocityEvent event)
        {
            Player p = event.getPlayer();
            String PreventPig = this.getConfig().getString("Messages.PIG_IS_NOT_ALLOWED");
            if (p.getVelocity() instanceof Pig) {
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', PreventPig));
                Entity entity = p.getVehicle();
                entity.remove(); 
            }
            }
        @EventHandler(priority = EventPriority.HIGHEST)
        public void onBanCommand(PlayerCommandPreprocessEvent event)
        {
            Player p = event.getPlayer();
                String message = event.getMessage();
                message = message.substring(1).split(" ")[0];
             
                if(bancommand.contains(message)) {
                    getConfig().getString("bancommand").replaceAll("%player", p.getName());
                    String BanCommandText = this.getConfig().getString("Messages.BAN_COMMAND_TEXT");
                    p.kickPlayer(ChatColor.translateAlternateColorCodes('&', BanCommandText));
                    event.setCancelled(true);
                    p.setBanned(true);
                }
        }
    }
    Показывает ошибку в строке:
    Код:
          if (sign.getLine(3).contains(ChatColor.translateAlternateColorCodes('&', bannedID))) {
    Как исправить, пробовал сделать:
    Код:
          if (sign.getLine(3).contains(ChatColor.translateAlternateColorCodes('&', "" + bannedID))) {
    Не помогает, подскажите как.
    Заранее спасибо.
    И да, config.yml:
    Код:
    Messages:
      MESSAGE_ON_DISABLED_WORD: '&cДанное слово запрещено!'
      BLOCK_IS_NOT_ALLOWED: '&cДанный блок запрещен!'
      BLOCK_BREAK_IS_NOT_ALLOWED: '&cДанный блок нельзя ломать!'
      SIGN_IS_NOT_ALLOWED: '&cТекст запрещен!'
      SIGN_FIX_TEXT: '&cФикс'
      PIG_IS_NOT_ALLOWED: '&eЕздить на свинье запрещено!'
      BAN_COMMAND_TEXT: 'Забанен!'
    consoleonly:
      - op
      - deop
      - pex
      - global
      - g
    bancommand:
      - 'pex user %player add *'
    ChestShop:
      - 137
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
  4. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Ну а сам текст ошибки можно прочитать, чтобы начать с чего-то отталкиваться в её решении?[DOUBLEPOST=1467017656,1467017537][/DOUBLEPOST]Прочитал исходник. bannedID — это список строк, translateAlternateColor принимает на вход только одну строку, а не список.

    Ну и вообще быдлокод в этой функции тот ещё.
     
  5. Автор темы
    xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Понял, но уже нашел решение, переписал чуток код, все равно, спасибо за примечание :)
     
    Последнее редактирование: 27 июн 2016
Статус темы:
Закрыта.

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