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

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

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Возможно ли упростить код плагина?
    Есть ли гавно код в плагине.
    Код:
    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;
        }
    }
    
    
    
     
    Последнее редактирование: 25 фев 2017
  2. Blc_Dragon

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

    Баллы:
    76
    список сообщений можно в енум выкинуть

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

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