Идея Задержка после выполнения команды.

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

Namer_PRO

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Namer_PRO
ЗАДАЧА №Mimecraft:
Есть команда /hack, и после ее выполнения надо установить задержку 30 минут. Как такое реализовать? Напишите свой плагин или посоветуйте !ХОРОШИЙ! другой. Для minecraft bukkit 1.8! Перед предложением плагина, желательно проверить его работоспособность на своем сервере.
 
CommandCooldown
 
PHP:
package net.faint.cooldowncmd;

import org.bukkit.configuration.file.*;
import org.bukkit.plugin.java.*;

public class Main extends JavaPlugin { 
   
  {}
  protected static Main m;   
  {}
 
  public void onEnable() {
      saveDefaultConfig();
      getLogger().info("Plugin started");
  }
 
  public FileConfiguration getConfig() {
      return Main.m.getConfig();
  }
}
PHP:
package net.faint.cooldowncmd;

import org.bukkit.command.*;

public class CMD {
    public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
        if (label.equalsIgnoreCase(Storage.getCommandsList())) {
            if (Storage.onCoolDown(sender)) {
                sender.sendMessage(Main.m.getConfig().getString("CoolDownMessage"));
                return true;
            } else {
                Storage.Set(sender.getName());
            }
        }
        return true;
    }
}
PHP:
package net.faint.cooldowncmd;

import java.util.*;
import org.bukkit.command.*;

public class Storage {
 
    {}
    private static HashMap<String, Long> cooldowns;
    protected static double cooldownTime = Main.m.getConfig().getDouble("CoolDownTime");
    protected static List<String> commands;
    static String cmd;
    {}
   
    public Storage() {
        Storage.cooldowns = new HashMap<String, Long>();
        Storage.commands = (List<String>)Main.m.getConfig().getStringList("Commands");     
        Storage.cmd = Storage.commands.toString();
    }
   
    public static void Set(String sender) {
        cooldowns.put(sender, System.currentTimeMillis());
    }
   
    public static String getCommandsList() {
        return Storage.cmd;
    }
   
    public static boolean onCoolDown(CommandSender p) {
    if(cooldowns.containsKey(p.getName())) {
            double secondsLeft = ((cooldowns.get(p.getName())/1000)+cooldownTime) - (System.currentTimeMillis()/1000);
            if(secondsLeft>0) {
                return true;
            }
        }
    return true;
    }
}
 
Последнее редактирование:
Я написал на скорою руку, и даже не вчитывался в код (а тем более не тестил его). Если автору надо - допишет.
Спасибо, однако, все-таки Вы бы мне очень помогли, если бы написали нормальный (отлаженный) код и скомпилировали бы в jar.
 
чтобы искоренить проблемы с регистром и не парится с этим, к тому же хранить UUID вместо ника логичнее.
Не могли бы Вы доработать плагин:
PHP:
package net.faint.cooldowncmd;

import org.bukkit.configuration.file.*;
import org.bukkit.plugin.java.*;

public class Main extends JavaPlugin {
  
  {}
  protected static Main m;  
  {}
 
  public void onEnable() {
      saveDefaultConfig();
      getLogger().info("Plugin started");
  }
 
  public FileConfiguration getConfig() {
      return Main.m.getConfig();
  }
}
PHP:
package net.faint.cooldowncmd;

import org.bukkit.command.*;

public class CMD {
    public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
        if (label.equalsIgnoreCase(Storage.getCommandsList())) {
            if (Storage.onCoolDown(sender)) {
                sender.sendMessage(Main.m.getConfig().getString("CoolDownMessage"));
                return true;
            } else {
                Storage.Set(sender.getName());
            }
        }
        return true;
    }
}
PHP:
package net.faint.cooldowncmd;

import java.util.*;
import org.bukkit.command.*;

public class Storage {
 
    {}
    private static HashMap<String, Long> cooldowns;
    protected static double cooldownTime = Main.m.getConfig().getDouble("CoolDownTime");
    protected static List<String> commands;
    static String cmd;
    {}
  
    public Storage() {
        Storage.cooldowns = new HashMap<String, Long>();
        Storage.commands = (List<String>)Main.m.getConfig().getStringList("Commands");    
        Storage.cmd = Storage.commands.toString();
    }
  
    public static void Set(String sender) {
        cooldowns.put(sender, System.currentTimeMillis());
    }
  
    public static String getCommandsList() {
        return Storage.cmd;
    }
  
    public static boolean onCoolDown(CommandSender p) {
    if(cooldowns.containsKey(p.getName())) {
            double secondsLeft = ((cooldowns.get(p.getName())/1000)+cooldownTime) - (System.currentTimeMillis()/1000);
            if(secondsLeft>0) {
                return true;
            }
        }
    return true;
    }
}
 
чтобы искоренить проблемы с регистром и не парится с этим, к тому же хранить UUID вместо ника логичнее.
Я лично люблю строку. По этому кому надо тот может UUID.
Спасибо, однако, все-таки Вы бы мне очень помогли, если бы написали нормальный (отлаженный) код и скомпилировали бы в jar.
Я написал код чтобы показать пример. Тебе надо - ты пиши.
Не могли бы Вы доработать плагин:
UUID или String это уже кто как хочет, я лично больше за строку.
 
Я лично люблю строку. По этому кому надо тот может UUID.

Я написал код чтобы показать пример. Тебе надо - ты пиши.

UUID или String это уже кто как хочет, я лично больше за строку.
+
 
ПРОБЛЕМУ РЕШИЛ!
ТЕМА ЗАКРЫТА.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх