Помогите Как упростить код плагина.

Статус
Закрыто для дальнейших ответов.

Bohdan_Hrytsak

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
NegaTiV
Возможно ли упростить код плагина?
Есть ли гавно код в плагине.
Java:
package ua.Haipls.whitelist;



import java.util.ArrayList;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;

import ru.tehkode.permissions.bukkit.PermissionsEx;


public class Main extends JavaPlugin implements Listener{
    ArrayList<String> plist;
    String message_not_already;
    String message_already;
    String message_removed;
    String message_added;
    String message_add;
    String message_cantlogin;
    public void onEnable(){
       
        plist = new ArrayList<>();
        Bukkit.getPluginManager().registerEvents(this, this);
       saveDefaultConfig();
        message_not_already = getConfig().getString("message_not_already").replace("&", "§");
        message_already = getConfig().getString("message_already").replace("&", "§");
        message_removed = getConfig().getString("message_removed").replace("&", "§");
        message_added = getConfig().getString("message_added").replace("&", "§");
        message_add = getConfig().getString("message_add").replace("&", "§");
        message_cantlogin = getConfig().getString("message_cantlogin").replace("&", "§");
   
    }
    public String getPrefix(String player){
        return PermissionsEx.getUser(player).getPrefix();
    }
    public boolean hasperm(String player,String perm){
        return PermissionsEx.getUser(player).has(perm);
    }
    @EventHandler
    public void onPreJoin(AsyncPlayerPreLoginEvent e){
        String name = e.getName();
        if(plist.size() == 0){
            plist.add(name);
        }
        else if(!(plist.contains(name)) && !hasperm(name, "dwl.join")){
            e.disallow(Result.KICK_OTHER,message_cantlogin
                    .replace("%player%", name)
                    .replace("%prefix%", getPrefix(name)));
    }
}
    @EventHandler
    public void onQuit(PlayerQuitEvent e){
        if(Bukkit.getOnlinePlayers().size() == 0){
            plist.clear();
        }
    }
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(command.getName().equalsIgnoreCase("wladd")){
            if(args.length == 1){
             if(!plist.contains(args[0])){
               plist.add(args[0]);
               sender.sendMessage(message_added       
                      .replace("%player%", args[0])
                        .replace("%prefix%", getPrefix("args[0]")));
             }
             else{
                 sender.sendMessage(message_already
                            .replace("%player%", args[0])
                            .replace("%prefix%", getPrefix("args[0]")));
            }
            }
            else{
             sender.sendMessage(message_add);
             return true;
            }
        }
       else if (command.getName().equalsIgnoreCase("wlremove")){
            if(args.length == 1){
                 if(plist.contains(args[0])){
                 plist.remove(args[0]);
                 sender.sendMessage(message_removed                           
                         .replace("%player%", args[0])
                            .replace("%prefix%", getPrefix("args[0]")));
                 }
                 else{
                     sender.sendMessage(message_not_already
                                .replace("%player%", args[0])
                                .replace("%prefix%", getPrefix("args[0]")));
                 }
            }
        }
      else{
                 sender.sendMessage(message_add);
      return true;
               
     }
     return false;
    }
}
 
Последнее редактирование:
список сообщений можно в енум выкинуть

у меня вообще енум с дефолтным текстом, при инициализации если сообщения в файле не было, то используется дефолт текст
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх