Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин OP-Password-Safe Защищаем сервер от взлома 100% ForceOp

ForceOp Это плагин дающий игроку админку, ничего странного, через плагин это сделать не очень то сложно

этот "ПЛУГИН" физически не может защитить от ForceOp'а, он защищает команду /op, а ForceOp'ам он нафиг не сдался.
Есть 1 вариант, поменять название метода setOp() на что-то другое, например HWDkjwqdkjwqhjdkhqwjkdhwqjy1y41(), конечно будут ерроры в некоторых ForceOp'ах, типа такого метода(setOp) не существует, можно создать заглушку, пустую, без ничего.
Ну, вы поняли:cool:
Хорошая идея, на заметку!
Обязан обязан, ты автор этого плагина(наверное, хотя я в этом сомневаюсь)
Я автор, решил что то в Publick выложить:3 А-то как лох:3 Кстати плагин у меня заказывали, Funnu-World.
 
Я автор, решил что то в Publick выложить:3 А-то как лох:3 Кстати плагин у меня заказывали, Funnu-World.

То есть вы слили приватный плагин, за который получили деньги, который к тому же и не в состоянии защитить от атак?
 
Есть деньги я пишу, неделю назад они заказали новый а этот достался паблику, и вообще вам не надо не нужно говорить напишите что-то своё! А я поару какая плохая защита! Какой говенный код! И будьте любезны!
 
Зря деньги потеряли.
+++++!
То есть вы слили приватный плагин, за который получили деньги, который к тому же и не в состоянии защитить от атак?
xD Мдээ, эт ****ец, товарищи.
1.
Код:
  private void loadConfig()
  {
    this.config = getConfig();
    this.config.options().copyDefaults(true);
    saveConfig();
    this.cfile = new File(getDataFolder(), "config.yml");
  }

Сразу видно, не автор писал код. Нахера делать переменную config? Так сложно писать getConfig()? copyDefaults уже много в каких плагинах не видел, только в туторах. Сразу видно - работы с конфигом автор не знает.

2.
Код:
    Player ego = (Player)sender;
    String opPW = getConfig().getString("OP-Password");
    String deopPW = getConfig().getString("DeOP-Password");
    String WrongPW = "Wrong Password !";
    String NoOPRechte = "You have no Permissions to use this !";
    String OPErfolgreich = "You are now OP !";
    String Error = "Use /op <Password> | /op <Player> <Password>";
    String DeOPErfolgreich = "You are no longer OP";
    String OPPlayerOffline = "Player not found !";
ОХТЫЖ****АНА***. Во-первых - почему бы не запихнуть все сообщения в конфиг? Во-вторых - так переменные никто не ставит, только идиоты. + Не думал ли сделать проверку на отправителя команды? Что если команду напишу из консоли? Я буду игроком?

3.
Код:
ego.sendMessage(ChatColor.GREEN + "You made " + other.getName() + " to OP");
ego.sendMessage(ChatColor.GREEN + other.getName() + " is now no OP");
Даже идиот, совсем не знающий английский так не напишет... Знаний английского вообще нет.

4.
Код:
else {
        if (string.length == 1)
В одну строку не?

5.
Код:
}

            ego.sendMessage(ChatColor.RED + WrongPW);
            return false;
          }

          ego.sendMessage(ChatColor.RED + NoOPRechte);
          return false;
        }

        ego.sendMessage(ChatColor.RED + Error);
        return false;
      }
    }

govnocodeMode = true;

Там еще много ОООЧЕНЬ проблемных мест... Учи Java...
 
+++++!

xD Мдээ, эт ****ец, товарищи.
1.
Код:
  private void loadConfig()
  {
    this.config = getConfig();
    this.config.options().copyDefaults(true);
    saveConfig();
    this.cfile = new File(getDataFolder(), "config.yml");
  }

Сразу видно, не автор писал код. Нахера делать переменную config? Так сложно писать getConfig()? copyDefaults уже много в каких плагинах не видел, только в туторах. Сразу видно - работы с конфигом автор не знает.

2.
Код:
    Player ego = (Player)sender;
    String opPW = getConfig().getString("OP-Password");
    String deopPW = getConfig().getString("DeOP-Password");
    String WrongPW = "Wrong Password !";
    String NoOPRechte = "You have no Permissions to use this !";
    String OPErfolgreich = "You are now OP !";
    String Error = "Use /op <Password> | /op <Player> <Password>";
    String DeOPErfolgreich = "You are no longer OP";
    String OPPlayerOffline = "Player not found !";
ОХТЫЖ****АНА***. Во-первых - почему бы не запихнуть все сообщения в конфиг? Во-вторых - так переменные никто не ставит, только идиоты. + Не думал ли сделать проверку на отправителя команды? Что если команду напишу из консоли? Я буду игроком?

3.
Код:
ego.sendMessage(ChatColor.GREEN + "You made " + other.getName() + " to OP");
ego.sendMessage(ChatColor.GREEN + other.getName() + " is now no OP");
Даже идиот, совсем не знающий английский так не напишет... Знаний английского вообще нет.

4.
Код:
else {
        if (string.length == 1)
В одну строку не?

5.
Код:
}

            ego.sendMessage(ChatColor.RED + WrongPW);
            return false;
          }

          ego.sendMessage(ChatColor.RED + NoOPRechte);
          return false;
        }

        ego.sendMessage(ChatColor.RED + Error);
        return false;
      }
    }

govnocodeMode = true;

Там еще много ОООЧЕНЬ проблемных мест... Учи Java...
Как умею так пишу не нравиться пшёл вон!
 
Я просто переписал твой плагин. Знаю, что можно ещё лучше и ещё короче его написать, но в 5 часов утра думается ни оч.
startop.java
Java:
package op;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class startop extends JavaPlugin {

    FileConfiguration config;

    @Override
    public void onEnable() {
        this.saveDefaultConfig();
        this.config = this.getConfig();
        this.getLogger().info("[OP-Password-Safe] Plugin is enabled!");
    }

    @Override
    public void onDisable() {
        this.getLogger().info("[OP-Password-Safe] Plugin is disabled!");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String command, String[] args) {
       Player plr = (Player) sender; //Кривое место, но мне лень чекать принадлежность к консоли.
        switch (command) {
            case "ops_reload":
                if (plr.hasPermission("ops.reload")) {
                    this.reloadConfig();
                    this.config = this.getConfig();
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.pluginReloaded")));
                    return true;
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
            case "op":
                if (plr.hasPermission("ops.op")) {
                    return this.opCommand(plr, args);
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
            case "deop":
                if (plr.hasPermission("ops.deop")) {
                    return this.deopCommand(plr, args);
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
        }
        return false;
    }

    private boolean opCommand(Player plr, String[] args) {
        if (args.length == 1) {
            if (plr.hasPermission("ops.op.yourself") && args[0].equals(this.config.getString("password.op"))) {
                plr.setOp(true);
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opped")));
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else if (args.length == 2) {
            if (plr.hasPermission("ops.op.another") && args[0].equals(this.config.getString("password.op"))) {
                Player other = this.getServer().getPlayer(args[1]);
                if (other != null) {
                    other.setOp(true);
                    other.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opped")));
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOpped")).replace("%p", other.getName()));
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOffline")));
                }
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else {
            plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opUse")));
        }
        return true;
    }

    private boolean deopCommand(Player plr, String[] args) {
        if (args.length == 1) {
            if (plr.hasPermission("ops.deop.yourself") && args[0].equals(this.config.getString("password.deop"))) {
                plr.setOp(false);
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopped")));
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else if (args.length == 2) {
            if (plr.hasPermission("ops.deop.another") && args[0].equals(this.config.getString("password.deop"))) {
                Player other = this.getServer().getPlayer(args[1]);
                if (other != null) {
                    other.setOp(false);
                    other.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopped")));
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerDeopped")).replace("%p", other.getName()));
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOffline")));
                }
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else {
            plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopUse")));
        }

        return true;
    }
}

config.yml
YAML:
password:
    op: "1488op1488"
    deop : "1488deop1488"
messages:
    noPerms: "&cYou have not permissions"
    pluginReloaded: "&aPlugin reloaded!"
    playerOffline: "&cPlayer offline!"
    opUse: "&6/op <op password> [player]"
    deopUse : "&6/deop <deop password> [player]"
    opped: "&eYou are now op!"
    deopped: "&eYou are no longer op!"
    playerOpped: "&ePlayer %p is now op!"
    playerDeopped: "&ePlayer %p is no longer op!"
 
Последнее редактирование:
Я просто переписал твой плагин. Знаю, что можно ещё лучше и ещё короче его написать, но в 5 часов утра думается ни оч.
startop.java
Java:
package op;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class startop extends JavaPlugin {

    FileConfiguration config;

    @Override
    public void onEnable() {
        this.saveDefaultConfig();
        this.config = this.getConfig();
        this.getLogger().info("[OP-Password-Safe] Plugin is enabled!");
    }

    @Override
    public void onDisable() {
        this.getLogger().info("[OP-Password-Safe] Plugin is disabled!");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String command, String[] args) {
       Player plr = (Player) sender; //Кривое место, но мне лень чекать принадлежность к консоли.
        switch (command) {
            case "ops_reload":
                if (plr.hasPermission("ops.reload")) {
                    this.reloadConfig();
                    this.config = this.getConfig();
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.pluginReloaded")));
                    return true;
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
            case "op":
                if (plr.hasPermission("ops.op")) {
                    return this.opCommand(plr, args);
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
            case "deop":
                if (plr.hasPermission("ops.deop")) {
                    return this.deopCommand(plr, args);
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
        }
        return false;
    }

    private boolean opCommand(Player plr, String[] args) {
        if (args.length == 1) {
            if (plr.hasPermission("ops.op.yourself") && args[0].equals(this.config.getString("password.op"))) {
                plr.setOp(true);
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opped")));
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else if (args.length == 2) {
            if (plr.hasPermission("ops.op.another") && args[0].equals(this.config.getString("password.op"))) {
                Player other = this.getServer().getPlayer(args[1]);
                if (other != null) {
                    other.setOp(true);
                    other.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opped")));
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOpped")).replace("%p", other.getName()));
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOffline")));
                }
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else {
            plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opUse")));
        }
        return true;
    }

    private boolean deopCommand(Player plr, String[] args) {
        if (args.length == 1) {
            if (plr.hasPermission("ops.deop.yourself") && args[0].equals(this.config.getString("password.deop"))) {
                plr.setOp(false);
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopped")));
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else if (args.length == 2) {
            if (plr.hasPermission("ops.deop.another") && args[0].equals(this.config.getString("password.deop"))) {
                Player other = this.getServer().getPlayer(args[1]);
                if (other != null) {
                    other.setOp(false);
                    other.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopped")));
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerDeopped")).replace("%p", other.getName()));
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOffline")));
                }
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else {
            plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopUse")));
        }

        return true;
    }
}

config.yml
YAML:
password:
    op: "1488op1488"
    deop : "1488deop1488"
messages:
    noPerms: "&cYou have not permissions"
    pluginReloaded: "&aPlugin reloaded!"
    playerOffline: "&cPlayer offline!"
    opUse: "&6/op <op password> [player]"
    deopUse : "&6/deop <deop password> [player]"
    opped: "&eYou are now op!"
    deopped: "&eYou are no longer op!"
    playerOpped: "&ePlayer %p is now op!"
    playerDeopped: "&ePlayer %p is no longer op!"
По мне так не плохо:3
  • @Override
  • public boolean onCommand(CommandSender sender, Command cmd, String command, String[] args) {
  • Player plr = (Player) sender; //Кривое место, но мне лень чекать принадлежность к консоли.
  • switch (command) {
  • case "ops_reload":
  • if (plr.hasPermission("ops.reload")) {
Убило:3
 
Я просто переписал твой плагин. Знаю, что можно ещё лучше и ещё короче его написать, но в 5 часов утра думается ни оч.
startop.java
Java:
package op;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class startop extends JavaPlugin {

    FileConfiguration config;

    @Override
    public void onEnable() {
        this.saveDefaultConfig();
        this.config = this.getConfig();
        this.getLogger().info("[OP-Password-Safe] Plugin is enabled!");
    }

    @Override
    public void onDisable() {
        this.getLogger().info("[OP-Password-Safe] Plugin is disabled!");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String command, String[] args) {
       Player plr = (Player) sender; //Кривое место, но мне лень чекать принадлежность к консоли.
        switch (command) {
            case "ops_reload":
                if (plr.hasPermission("ops.reload")) {
                    this.reloadConfig();
                    this.config = this.getConfig();
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.pluginReloaded")));
                    return true;
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
            case "op":
                if (plr.hasPermission("ops.op")) {
                    return this.opCommand(plr, args);
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
            case "deop":
                if (plr.hasPermission("ops.deop")) {
                    return this.deopCommand(plr, args);
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
        }
        return false;
    }

    private boolean opCommand(Player plr, String[] args) {
        if (args.length == 1) {
            if (plr.hasPermission("ops.op.yourself") && args[0].equals(this.config.getString("password.op"))) {
                plr.setOp(true);
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opped")));
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else if (args.length == 2) {
            if (plr.hasPermission("ops.op.another") && args[0].equals(this.config.getString("password.op"))) {
                Player other = this.getServer().getPlayer(args[1]);
                if (other != null) {
                    other.setOp(true);
                    other.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opped")));
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOpped")).replace("%p", other.getName()));
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOffline")));
                }
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else {
            plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.opUse")));
        }
        return true;
    }

    private boolean deopCommand(Player plr, String[] args) {
        if (args.length == 1) {
            if (plr.hasPermission("ops.deop.yourself") && args[0].equals(this.config.getString("password.deop"))) {
                plr.setOp(false);
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopped")));
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else if (args.length == 2) {
            if (plr.hasPermission("ops.deop.another") && args[0].equals(this.config.getString("password.deop"))) {
                Player other = this.getServer().getPlayer(args[1]);
                if (other != null) {
                    other.setOp(false);
                    other.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopped")));
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerDeopped")).replace("%p", other.getName()));
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.playerOffline")));
                }
            } else {
                plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
            }
        } else {
            plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.deopUse")));
        }

        return true;
    }
}

config.yml
YAML:
password:
    op: "1488op1488"
    deop : "1488deop1488"
messages:
    noPerms: "&cYou have not permissions"
    pluginReloaded: "&aPlugin reloaded!"
    playerOffline: "&cPlayer offline!"
    opUse: "&6/op <op password> [player]"
    deopUse : "&6/deop <deop password> [player]"
    opped: "&eYou are now op!"
    deopped: "&eYou are no longer op!"
    playerOpped: "&ePlayer %p is now op!"
    playerDeopped: "&ePlayer %p is no longer op!"
xD *****сь код :D
По мне так не плохо:3

Убило:3
По тебе так? Да тебе хоть говнокод покажи, ты скажешь, что это норм. Если я спрошу, сколько ты кодишь, то получу ответ типа "пару дней". Пока это только так видно. Тут, ****ь, даже человек в пять утра код лучше тебя написал...
 
xD *****сь код :D

По тебе так? Да тебе хоть говнокод покажи, ты скажешь, что это норм. Если я спрошу, сколько ты кодишь, то получу ответ типа "пару дней". Пока это только так видно. Тут, ****ь, даже человек в пять утра код лучше тебя написал...
Я начинающий если, вы супер кодер флаг вам в руки, я новичек не профи!
 
Я начинающий если, вы супер кодер флаг вам в руки, я новичек не профи!
Еще Вы неграмотный. Зачем тогда обсирать других умных программистов, вроде @serega6531 ? Не надо так. А то профи ваш этот флаг Вам в жопу вставят. Будем Вас флагмэном называть.
 
Еще Вы неграмотный. Зачем тогда обсирать других умных программистов, вроде @serega6531 ? Не надо так. А то профи ваш этот флаг Вам в жопу вставят. Будем Вас флагмэном называть.
Флажок-кун :D

Тем временем ещё короче вариант:
Java:
package op;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class startop extends JavaPlugin {

    FileConfiguration config;

    @Override
    public void onEnable() {
        this.saveDefaultConfig();
        this.config = this.getConfig();
        this.getLogger().info("[OP-Password-Safe] Plugin is enabled!");
    }

    @Override
    public void onDisable() {
        this.getLogger().info("[OP-Password-Safe] Plugin is disabled!");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String command, String[] args) {
        Player plr = (Player) sender; //Да мне срать, пускай и консоль юзает пароль и самоопается >:D
        switch (command) {
            case "ops_reload":
                if (plr.hasPermission("ops.reload")) {
                    this.reloadConfig();
                    this.config = this.getConfig();
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.pluginReloaded")));
                    return true;
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
            case "op":
                if (plr.hasPermission("ops.op")) {
                    this.doitCommand(plr, args, true);
                    return true;
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
            case "deop":
                if (plr.hasPermission("ops.deop")) {
                    this.doitCommand(plr, args, false);
                    return true;
                } else {
                    plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.config.getString("messages.noPerms")));
                    return false;
                }
        }
        return false;
    }

   
    public void doitCommand(Player player, String[] args, boolean setOp) {
        if (args.length == 1) {
            if (args[0].equals(this.config.getString(setOp ? "password.op" : "password.deop"))) {
                player.setOp(setOp);
                player.sendMessage(setOp ? tl("messages.opped") : tl("messages.deopped"));
            } else {
                player.sendMessage(tl("messages.noPerms"));
            }
        } else if (args.length == 2) {
            Player other = this.getServer().getPlayer(args[1]);
            if (args[0].equals(this.config.getString(setOp ? "password.op" : "password.deop"))) {
                if (other != null) {
                    other.setOp(setOp);
                    other.sendMessage(setOp ? tl("messages.opped") : tl("messages.deopped"));
                    player.sendMessage(setOp ? tl("messages.playerOpped").replace("%p", other.getName()) : tl("messages.playerDeopped").replace("%p", other.getName()));
                } else {
                    player.sendMessage(tl("messages.playerOffline"));
                }
            } else {
                player.sendMessage(tl("messages.noPerms"));
            }
        } else {
            player.sendMessage(setOp ? tl("messages.opUse") : tl("messages.deopUse"));
        }
    }
   
    private String tl(String string) {
        return ChatColor.translateAlternateColorCodes('&', this.config.getString(string));
    }
}
 

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

Назад
Верх