所以我有一個名爲JustExplode的Minecraft插件,我試圖讓它如此,如果有人有權限justexplode.timer,他們必須等待10分鐘才能再次使用命令/爆炸。它不工作,我嘗試了多種方式,而且我對編程新手......有人能幫助我嗎?這是我的主類JustExplode.java:如何在Bukkit中設置權限?
package me.sam1370.justexplode;
import java.util.Date;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class JustExplode extends JavaPlugin{
@Override
public void onEnable() {
getLogger().info("JustExplode has been enabled!");
getConfig().options().copyDefaults(true);
saveConfig();
}
@Override
public void onDisable() {
getLogger().info("JustExplode has been disabled!");
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("explode") && sender.hasPermission("justexplode.explode")){
// Make sure that the player specified exactly one argument (the name of the player to exPLODE!).
if (args.length != 1) {
// When onCommand() returns false, the help message associated with that command is displayed.
return false;
}
// Make sure the sender is a player.
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Only players can explode other players.");
return true;
}
// Get the player who should be exploded. Remember that indices start with 0, not 1.
Player target = Bukkit.getServer().getPlayer(args[0]);
// Make sure the player is online.
if (target == null) {
sender.sendMessage(args[0] + " is not currently online.");
return true;
}
Location loc = target.getLocation();
target.getWorld().spawnEntity(loc, EntityType.PRIMED_TNT);
String actuality = target.getName();
if(sender instanceof Player){
Player player = (Player) sender;
String localMessage = getConfig().getString("message");
if(localMessage.contains("%player%")) {
localMessage = localMessage.replace("%player%", actuality);
}
if(localMessage.contains("&4")) {
localMessage = localMessage.replace("&4", ChatColor.DARK_RED + "");
}
if(localMessage.contains("&c")) {
localMessage = localMessage.replace("&c", ChatColor.RED + "");
}
if(localMessage.contains("&6")) {
localMessage = localMessage.replace("&6", ChatColor.GOLD + "");
}
if(localMessage.contains("&e")) {
localMessage = localMessage.replace("&e", ChatColor.YELLOW + "");
}
if(localMessage.contains("&2")) {
localMessage = localMessage.replace("&2", ChatColor.DARK_GREEN + "");
}
if(localMessage.contains("&a")) {
localMessage = localMessage.replace("&a", ChatColor.GREEN + "");
}
if(localMessage.contains("&b")) {
localMessage = localMessage.replace("&b", ChatColor.AQUA + "");
}
if(localMessage.contains("&3")) {
localMessage = localMessage.replace("&3", ChatColor.DARK_AQUA + "");
}
if(localMessage.contains("&1")) {
localMessage = localMessage.replace("&1", ChatColor.DARK_BLUE + "");
}
if(localMessage.contains("&9")) {
localMessage = localMessage.replace("&9", ChatColor.BLUE + "");
}
if(localMessage.contains("&d")) {
localMessage = localMessage.replace("&d", ChatColor.LIGHT_PURPLE + "");
}
if(localMessage.contains("&5")) {
localMessage = localMessage.replace("&5", ChatColor.DARK_PURPLE + "");
}
if(localMessage.contains("&f")) {
localMessage = localMessage.replace("&f", ChatColor.WHITE + "");
}
if(localMessage.contains("&7")) {
localMessage = localMessage.replace("&7", ChatColor.GRAY + "");
}
if(localMessage.contains("&l")) {
localMessage = localMessage.replace("&l", ChatColor.BOLD + "");
}
if(localMessage.contains("&n")) {
localMessage = localMessage.replace("&n", ChatColor.UNDERLINE + "");
}
if(localMessage.contains("&o")) {
localMessage = localMessage.replace("&o", ChatColor.ITALIC + "");
}
if(localMessage.contains("&k")) {
localMessage = localMessage.replace("&k", ChatColor.MAGIC + "");
}
if(localMessage.contains("&m")) {
localMessage = localMessage.replace("&m", ChatColor.STRIKETHROUGH + "");
}
if(localMessage.contains("&r")) {
localMessage = localMessage.replace("&r", ChatColor.RESET + "");
}
player.sendMessage(localMessage);
return true;
}else{
if(sender instanceof Player){
Player player = (Player) sender;
player.sendMessage(ChatColor.RED + "You don't have permission to explode anyone!");
return true;
}
}
return true;
}
return true;
}
public boolean onCommand1(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("explode") && sender.hasPermission("justexplode.timer")){
long timerMinutes = getConfig().getLong("timerMinutes");
long startTime = System.currentTimeMillis();
long elapsedTime = 0L;
while (elapsedTime < timerMinutes) {
long timeLeft = timerMinutes - elapsedTime;
String localMessage2 = getConfig().getString("timer");
String timeLeftString = Long.toString(timeLeft);
if(localMessage2.contains("%timeleft%")) {
localMessage2 = localMessage2.replace("%timeleft%", timeLeftString);
}
if(localMessage2.contains("&4")) {
localMessage2 = localMessage2.replace("&4", ChatColor.DARK_RED + "");
}
if(localMessage2.contains("&c")) {
localMessage2 = localMessage2.replace("&c", ChatColor.RED + "");
}
if(localMessage2.contains("&6")) {
localMessage2 = localMessage2.replace("&6", ChatColor.GOLD + "");
}
if(localMessage2.contains("&e")) {
localMessage2 = localMessage2.replace("&e", ChatColor.YELLOW + "");
}
if(localMessage2.contains("&2")) {
localMessage2 = localMessage2.replace("&2", ChatColor.DARK_GREEN + "");
}
if(localMessage2.contains("&a")) {
localMessage2 = localMessage2.replace("&a", ChatColor.GREEN + "");
}
if(localMessage2.contains("&b")) {
localMessage2 = localMessage2.replace("&b", ChatColor.AQUA + "");
}
if(localMessage2.contains("&3")) {
localMessage2 = localMessage2.replace("&3", ChatColor.DARK_AQUA + "");
}
if(localMessage2.contains("&1")) {
localMessage2 = localMessage2.replace("&1", ChatColor.DARK_BLUE + "");
}
if(localMessage2.contains("&9")) {
localMessage2 = localMessage2.replace("&9", ChatColor.BLUE + "");
}
if(localMessage2.contains("&d")) {
localMessage2 = localMessage2.replace("&d", ChatColor.LIGHT_PURPLE + "");
}
if(localMessage2.contains("&5")) {
localMessage2 = localMessage2.replace("&5", ChatColor.DARK_PURPLE + "");
}
if(localMessage2.contains("&f")) {
localMessage2 = localMessage2.replace("&f", ChatColor.WHITE + "");
}
if(localMessage2.contains("&7")) {
localMessage2 = localMessage2.replace("&7", ChatColor.GRAY + "");
}
if(localMessage2.contains("&l")) {
localMessage2 = localMessage2.replace("&l", ChatColor.BOLD + "");
}
if(localMessage2.contains("&n")) {
localMessage2 = localMessage2.replace("&n", ChatColor.UNDERLINE + "");
}
if(localMessage2.contains("&o")) {
localMessage2 = localMessage2.replace("&o", ChatColor.ITALIC + "");
}
if(localMessage2.contains("&k")) {
localMessage2 = localMessage2.replace("&k", ChatColor.MAGIC + "");
}
if(localMessage2.contains("&m")) {
localMessage2 = localMessage2.replace("&m", ChatColor.STRIKETHROUGH + "");
}
if(localMessage2.contains("&r")) {
localMessage2 = localMessage2.replace("&r", ChatColor.RESET + "");
}
if(sender instanceof Player){
Player player = (Player) sender;
player.sendMessage(localMessage2);
elapsedTime = (new Date()).getTime() - startTime;
}
}
return true;
}
return true;
}
}
,這裏是我的config.yml我設置:
# Default config file for JustExplode, by Sam1370
# There isn't a reload config command for right now, just reload or restart the server
# Change this to the message you want to see when you are exploding a player
# Put %player% in it to get the player that you are exploding
# Color codes are now supported, as opposed to version 1.0.8.2. YES!!!
message: "&aExploded &c%player%!"
# Change this to the message you want to see when a player tries to do /explode with the permission justexplode.timer
# Put %timeleft% in it to get the time left before they can explode again
# Color codes are supported
timer: "You can't explode anyone for %timeleft%!"
# Specify how many minutes, in milliseconds, how long you want someone to wait before they can do /explode again
# The default is 600000 milliseconds, which is 10 minutes
timerMinutes: 600000
任何人都知道如何做到這一點?提前致謝。
嘿,謝謝!我會試試看! – Sam1370
嘿,我把「少數功能」代碼放在哪裏?我試圖在你提供的第一個示例代碼之後加上它,但它一直說「無法訪問的代碼」。我在哪裏放? – Sam1370
是'return;'應該是真的還是假的? – Sam1370