Войти или зарегистрироваться

Помогите [1.5.2-1.8] Чтение YMLConfig

tyumencev2004

Активный участник
Пользователь
Баллы
66
Пишу плагин, пытаюсь читать StringList - а вот хрен мне. Блокирую команды по этому стринглисту, а он не читается. В commandCheck всегда false. Хаос! Я не слишком-уж гений в Java что бы руководить хаосом >_< Бета-код:
Код:
package mc.moofmonkey;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener {
    final String s = "\"";
    final String[] DefBlockCmds = { "/pl", "/plugins", "/help", "/fp", "//", "/?" };

    public boolean commandCheck(String command) {
        for (String s : getConfig().getStringList("commands.blacklist"))
            if (command.contains(s))
                return true;
        return false;
    }

    public String getDate() {
        final DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm a");
        final Date date = new Date();
        return dateFormat.format(date);
    }

    public void notifyPlayer(String playername, String command) {
        for (final Player player : Bukkit.getServer().getOnlinePlayers())
            if (player.isOp())
                player.sendMessage(ChatColor.BLUE + "[" + ChatColor.RED + "MoofPl" + ChatColor.BLUE + "] "
                        + ChatColor.GOLD + playername + ": " + ChatColor.WHITE + command);
    }

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
        if (!getConfig().contains("Commands.BlackList"))
            getConfig().addDefault("Commands.BlackList", DefBlockCmds);
        getConfig().options().copyDefaults(true);
        saveConfig();
    }

    @EventHandler(priority = EventPriority.LOW)
    public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws Throwable {
        final Player player = event.getPlayer();
        final String name = event.getPlayer().getName();
        final Location location = player.getLocation();
        final int xLocation = (int) location.getX();
        final int yLocation = (int) location.getY();
        final int zLocation = (int) location.getZ();
        final World world = location.getWorld();
        final String ipAddress = player.getAddress().getAddress().getHostAddress();
        final String worldName = world.getName();
        final String date = getDate();
        final String[] args = event.getMessage().split(" ");

        Bukkit.getServer().getConsoleSender()
                .sendRawMessage("Player: \"" + name + "\" has entered a command: \"" + args[0]
                        + "\". Here's coordinates - X: " + xLocation + " Y: " + yLocation + " Z: " + zLocation
                        + " World: " + worldName + " Date/Time: " + date + " IP: " + ipAddress);
        if (commandCheck(args[0])) {
            event.setCancelled(true);
            SendErrMSG(player, args[0]);
        }
    }

    private void SendErrMSG(Player player, String command) {
        final String s = "\"";
        player.sendMessage(ChatColor.RED + "Sowwy, you don't have permissions to execute command " + s + ChatColor.AQUA
                + command + ChatColor.RED + s + "!");
    }
}
 
Последнее редактирование:
Вопрос "отпал". "Очень хорошо" помогли... Конечный код:
Код:
package mc.moofmonkey;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener {
    final String s = "\"";
    final String[] DefBlockCmds = { "/pl", "/plugins", "/help", "/fp", "//", "/?" };

    public boolean commandCheck(String command) {
        for (String s : getConfig().getStringList("commands.blacklist"))
            if (command.contains(s))
                return true;
        return false;
    }

    public String getDate() {
        final DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm a");
        final Date date = new Date();
        return dateFormat.format(date);
    }

    public void notifyPlayer(String playername, String command) {
        for (final Player player : Bukkit.getServer().getOnlinePlayers())
            if (player.isOp())
                player.sendMessage(ChatColor.BLUE + "[" + ChatColor.RED + "MoofPl" + ChatColor.BLUE + "] "
                        + ChatColor.GOLD + playername + ": " + ChatColor.WHITE + command);
    }

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
        if (!getConfig().contains("Commands.BlackList"))
            getConfig().addDefault("Commands.BlackList", DefBlockCmds);
        getConfig().options().copyDefaults(true);
        saveConfig();
    }

    @EventHandler(priority = EventPriority.LOW)
    public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws Throwable {
        final Player player = event.getPlayer();
        final String name = event.getPlayer().getName();
        final Location location = player.getLocation();
        final int xLocation = (int) location.getX();
        final int yLocation = (int) location.getY();
        final int zLocation = (int) location.getZ();
        final World world = location.getWorld();
        final String ipAddress = player.getAddress().getAddress().getHostAddress();
        final String worldName = world.getName();
        final String date = getDate();
        final String[] args = event.getMessage().split(" ");

        Bukkit.getServer().getConsoleSender()
                .sendRawMessage("Player: \"" + name + "\" has entered a command: \"" + args[0]
                        + "\". Here's coordinates - X: " + xLocation + " Y: " + yLocation + " Z: " + zLocation
                        + " World: " + worldName + " Date/Time: " + date + " IP: " + ipAddress);
        if (commandCheck(args[0])) {
            event.setCancelled(true);
            SendErrMSG(player, args[0]);
        }
    }

    private void SendErrMSG(Player player, String command) {
        final String s = "\"";
        player.sendMessage(ChatColor.RED + "Sowwy, you don't have permissions to execute command " + s + ChatColor.AQUA
                + command + ChatColor.RED + s + "!");
    }
}
 
Отрадно смотреть, как люди сами побеждают свои проблемы :)
 
Назад
Верх