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

Помогите ограничение использования команды

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

Статус темы:
Закрыта.
  1. TheZefirrkka

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

    Баллы:
    76
    Поясни за "дно"
    У меня 840 сообщений, код полностью я пишу не так уж и редко, в данном случае код на 3 строки и писать его я не вижу смысла...
    Если человеку нужен именно код, а не объяснение, как это делать, то вообще не вижу смысла помогать.
    Это как ГДЗ.
     
  2. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Но ты все-таки не понимаешь, что @ВладМен не успокоится, пока не получит именно готовый код
     
  3. Volchok

    Volchok Активный участник

    Баллы:
    61
    Имя в Minecraft:
    WiseStar
    Не знаю понравится вам или нет :) Вот как я сделал ():
    1. Главный class

    Код:
    package ru.volk.help;
    
    import org.bukkit.Server;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class HPlugin extends JavaPlugin{
       
        Server s;
       
        HPlugin plugin;
        HUtils hu;  
       
        public void onEnable(){
            s = getServer();
           
            // Utils
            hu = new HUtils(this);
           
            // Все ваши команды
           
            // Пример:
            getCommand("blablablab").setExecutor(new HCommands(this));
        }
       
        public void onDisable(){
           
        }
       
        public HUtils getHUtils() {
            return hu;
        }
    
    }
    2. Utils Class

    Код:
    package ru.volk.help;
    
    import java.io.File;
    
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.entity.Player;
    
    public class HUtils {
    
        HPlugin plugin;
      
        //База данных
        private YamlConfiguration cmdsave;
      
        public HUtils(HPlugin p){
            plugin = p;
          
            cmdsave = getDB("cmdsave.yml");
        }  
        // Данные из файла
        public YamlConfiguration getDB(String name) {
            File config = new File(plugin.getDataFolder(), name);
            YamlConfiguration ymlcnf;
    
            if (!config.exists()) {
                ymlcnf = new YamlConfiguration();
                saveDB(name, ymlcnf);
            } else {
                ymlcnf = YamlConfiguration.loadConfiguration(config);
            }
            return ymlcnf;
        }
        // Данные в файл
        public void saveDB(String name, YamlConfiguration ymlcnf) {
            File config = new File(plugin.getDataFolder(), name);
            try {
                ymlcnf.save(config);
            } catch (Exception e) {
            }
        }  
        //Проверка на повторяемость набора команды
        public boolean isWrite(Player p, String cmd) {
            String v = cmd + "." + p.getName();
            boolean o = cmdsave.getBoolean(v, false);
            return o;
        }
        //Задаем "статус" команды - использована или нет
        public void setWrite(Player p, boolean cmd){
            String v = cmd + "." + p.getName();
            cmdsave.set(v, Boolean.valueOf(cmd));
            saveDB("cmdsave.yml", cmdsave);
        }
    }
    3. Class Commands

    Код:
    package ru.volk.help;
    
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    
    
    public class HCommands implements CommandExecutor {
      
        HPlugin plugin;
        HUtils hu;
      
        public HCommands(HPlugin p){
            plugin = p;
            hu = p.getHUtils();
        }
    
        public boolean onCommand(CommandSender sender, Command cmd, String str,String[] args) {
            if(sender instanceof Player){
                Player p = (Player) sender;
                if(cmd.getName().equalsIgnoreCase("blablablab")){ // Ваша любая команда
                    if(!(hu.isWrite(p, cmd.getName()))){ // если первый раз
                        hu.setWrite(p, true);
                      
                        //Дальше ваши действия....
                    }
                    return true;
                }
            }
            return false;
        }
    }
     
  4. alexandrage

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

    Баллы:
    173
    Ну все - выбрасывай.
     
  5. Volchok

    Volchok Активный участник

    Баллы:
    61
    Имя в Minecraft:
    WiseStar
    К чему написал?
     
  6. alexandrage

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

    Баллы:
    173
    Сам думай.
     
  7. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Лол, а почему бы и нет? Вроде как жизнеспособная вещь, за исключением пары замечаний, а ты сразу быковать
     
  8. alexandrage

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

    Баллы:
    173
    Ты сам то на код глядел? Дам подсказку -> HUtils.
     
  9. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    А, лол, точняк.
    Надеюсь, уже он ее уже выбросил
     
  10. Banner-System

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

    Баллы:
    78
    Вы вообще странные люди, Одни знают java вторые типа знаю, А на самом деле ничего, Оно видно когда читаешь тему=)
     
  11. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Просто никто, за исключением ньфагов, не собирается кому-то давать готовый код
     
  12. alexandrage

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

    Баллы:
    173
    Они просто и не смогут. В жабке ньюби.
     
  13. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Почему это? Калокод могут кинуть :)
     
  14. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Короче, шикарная у нас тут обстановка для новичков :good:
     
  15. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    + :D
     
  16. alexandrage

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

    Баллы:
    173
    Уже кинули чуть выше. Мои глаза вытекли.
     
  17. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Куда на лечение кидать? :D Или @Volchok сам согласится операцию оплатить?
     
  18. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Ну бля, я понимаю тралить новичков, но тупо принижать их не надо
     
  19. demkom

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

    Баллы:
    76
    Имя в Minecraft:
    G_demkom_G
    Ахах, можно ещё проорать с кода @HunterGaming, у него тоже "топовый" код.
     
  20. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Кинь свой, посмотрим на твое "чудо природы"
     
Статус темы:
Закрыта.

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