Added XP costs, fixed commands, fixed cancel on move
This commit is contained in:
parent
0430fce95e
commit
dd5d591d4b
16
plugin.yml
16
plugin.yml
|
@ -1,6 +1,6 @@
|
|||
name: boosCooldowns
|
||||
main: cz.boosik.boosCooldown.BoosCoolDown
|
||||
version: 3.7.5
|
||||
version: 3.8.0
|
||||
authors: [LordBoos (ingame name boosik)]
|
||||
softdepend: [Vault]
|
||||
description: >
|
||||
|
@ -22,6 +22,8 @@ permissions:
|
|||
booscooldowns.nocooldown: true
|
||||
booscooldowns.nowarmup: true
|
||||
booscooldowns.nolimit: true
|
||||
booscooldowns.noitemcost: true
|
||||
booscooldowns.noxpcost: true
|
||||
booscooldowns.nocancel.move:
|
||||
description: Players warmups will not be canceled by moving, even if it's turned on.
|
||||
default: false
|
||||
|
@ -46,6 +48,18 @@ permissions:
|
|||
booscooldowns.noprice./command:
|
||||
description: Command "/command" will not be affected by price for users with this permission.
|
||||
default: false
|
||||
booscooldowns.noitemcost:
|
||||
description: Players commands will always be free of charge (items).
|
||||
default: false
|
||||
booscooldowns.noitemcost./command:
|
||||
description: Command "/command" will not be affected by item cost for users with this permission.
|
||||
default: false
|
||||
booscooldowns.noxpcost:
|
||||
description: Players commands will always be free of charge (XP).
|
||||
default: false
|
||||
booscooldowns.noxpcost./command:
|
||||
description: Command "/command" will not be affected by xp cost for users with this permission.
|
||||
default: false
|
||||
booscooldowns.nocooldown:
|
||||
description: Player wont be affected by cooldowns.
|
||||
default: false
|
||||
|
|
|
@ -282,15 +282,15 @@ public class BoosConfigManager {
|
|||
* @param player
|
||||
* @return
|
||||
*/
|
||||
// static String[] getCommandValues(String regexCommand, Player player) {
|
||||
// String[] values;
|
||||
// String line = "";
|
||||
// String group = getCommandGroup(player);
|
||||
// line = conf.getString("commands.groups." + group + "." + regexCommand,
|
||||
// line);
|
||||
// values = line.split(",");
|
||||
// return values;
|
||||
// }
|
||||
// static String[] getCommandValues(String regexCommand, Player player) {
|
||||
// String[] values;
|
||||
// String line = "";
|
||||
// String group = getCommandGroup(player);
|
||||
// line = conf.getString("commands.groups." + group + "." + regexCommand,
|
||||
// line);
|
||||
// values = line.split(",");
|
||||
// return values;
|
||||
// }
|
||||
|
||||
/**
|
||||
* @return
|
||||
|
@ -307,7 +307,8 @@ public class BoosConfigManager {
|
|||
static int getCoolDown(String regexCommand, Player player) {
|
||||
int coolDown;
|
||||
String group = getCommandGroup(player);
|
||||
coolDown = conf.getInt("commands.groups." + group + "." + regexCommand + ".cooldown", 0);
|
||||
coolDown = conf.getInt("commands.groups." + group + "." + regexCommand
|
||||
+ ".cooldown", 0);
|
||||
return coolDown;
|
||||
}
|
||||
|
||||
|
@ -357,7 +358,7 @@ public class BoosConfigManager {
|
|||
"options.messages.interact_blocked_during_warmup",
|
||||
"&6You can't do this when command is warming-up!&f");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param regexCommand
|
||||
* @param player
|
||||
|
@ -368,9 +369,10 @@ public class BoosConfigManager {
|
|||
String temp;
|
||||
String[] command;
|
||||
String group = getCommandGroup(player);
|
||||
temp = conf.getString("commands.groups." + group + "." + regexCommand + ".itemcost", "");
|
||||
temp = conf.getString("commands.groups." + group + "." + regexCommand
|
||||
+ ".itemcost", "");
|
||||
command = temp.split(",");
|
||||
if(command.length==2){
|
||||
if (command.length == 2) {
|
||||
item = command[0];
|
||||
}
|
||||
return item;
|
||||
|
@ -386,9 +388,10 @@ public class BoosConfigManager {
|
|||
String temp;
|
||||
String[] command;
|
||||
String group = getCommandGroup(player);
|
||||
temp = conf.getString("commands.groups." + group + "." + regexCommand + ".itemcost", "");
|
||||
temp = conf.getString("commands.groups." + group + "." + regexCommand
|
||||
+ ".itemcost", "");
|
||||
command = temp.split(",");
|
||||
if(command.length==2){
|
||||
if (command.length == 2) {
|
||||
count = Integer.valueOf(command[1]);
|
||||
}
|
||||
return count;
|
||||
|
@ -402,7 +405,8 @@ public class BoosConfigManager {
|
|||
static int getLimit(String regexCommand, Player player) {
|
||||
int limit;
|
||||
String group = getCommandGroup(player);
|
||||
limit = conf.getInt("commands.groups." + group + "." + regexCommand + ".limit", -1);
|
||||
limit = conf.getInt("commands.groups." + group + "." + regexCommand
|
||||
+ ".limit", -1);
|
||||
return limit;
|
||||
}
|
||||
|
||||
|
@ -451,7 +455,7 @@ public class BoosConfigManager {
|
|||
linkGroup = conf.getStringList("commands.links.linkGroups." + link);
|
||||
return linkGroup;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param regexCommand
|
||||
* @param player
|
||||
|
@ -460,7 +464,8 @@ public class BoosConfigManager {
|
|||
static String getMessage(String regexCommand, Player player) {
|
||||
String message = "";
|
||||
String group = getCommandGroup(player);
|
||||
message = conf.getString("commands.groups." + group + "." + regexCommand + ".message", "");
|
||||
message = conf.getString("commands.groups." + group + "."
|
||||
+ regexCommand + ".message", "");
|
||||
return message;
|
||||
}
|
||||
|
||||
|
@ -490,9 +495,10 @@ public class BoosConfigManager {
|
|||
String temp;
|
||||
String[] command;
|
||||
String group = getCommandGroup(player);
|
||||
temp = conf.getString("commands.groups." + group + "." + regexCommand + ".limit", "");
|
||||
temp = conf.getString("commands.groups." + group + "." + regexCommand
|
||||
+ ".limit", "");
|
||||
command = temp.split(",");
|
||||
if(command.length==2){
|
||||
if (command.length == 2) {
|
||||
effect = command[0];
|
||||
}
|
||||
return effect;
|
||||
|
@ -508,9 +514,10 @@ public class BoosConfigManager {
|
|||
String temp;
|
||||
String[] command;
|
||||
String group = getCommandGroup(player);
|
||||
temp = conf.getString("commands.groups." + group + "." + regexCommand + ".limit", "");
|
||||
temp = conf.getString("commands.groups." + group + "." + regexCommand
|
||||
+ ".limit", "");
|
||||
command = temp.split(",");
|
||||
if(command.length==2){
|
||||
if (command.length == 2) {
|
||||
effect = Integer.valueOf(command[1]);
|
||||
}
|
||||
return effect;
|
||||
|
@ -524,7 +531,8 @@ public class BoosConfigManager {
|
|||
static double getPrice(String regexCommand, Player player) {
|
||||
double price;
|
||||
String group = getCommandGroup(player);
|
||||
price = conf.getDouble("commands.groups." + group + "." + regexCommand + ".price", 0.0);
|
||||
price = conf.getDouble("commands.groups." + group + "." + regexCommand
|
||||
+ ".price", 0.0);
|
||||
return price;
|
||||
}
|
||||
|
||||
|
@ -586,7 +594,8 @@ public class BoosConfigManager {
|
|||
static int getWarmUp(String regexCommand, Player player) {
|
||||
int warmUp;
|
||||
String group = getCommandGroup(player);
|
||||
warmUp = conf.getInt("commands.groups." + group + "." + regexCommand + ".warmup", 0);
|
||||
warmUp = conf.getInt("commands.groups." + group + "." + regexCommand
|
||||
+ ".warmup", 0);
|
||||
return warmUp;
|
||||
}
|
||||
|
||||
|
@ -638,13 +647,16 @@ public class BoosConfigManager {
|
|||
conf.load(confFile);
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Configuration file not found!");
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Configuration file not found!");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Could not read configuration file!");
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Could not read configuration file!");
|
||||
} catch (InvalidConfigurationException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Configuration file is invalid!");
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Configuration file is invalid!");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -656,13 +668,16 @@ public class BoosConfigManager {
|
|||
confusers.load(confusersFile);
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Storage file not found!");
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Storage file not found!");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Could not read storage file!");
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Could not read storage file!");
|
||||
} catch (InvalidConfigurationException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Storage file is invalid!");
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Storage file is invalid!");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -683,7 +698,8 @@ public class BoosConfigManager {
|
|||
confusers.save(confusersFile);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Could not save storage file!");
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Could not save storage file!");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -700,17 +716,19 @@ public class BoosConfigManager {
|
|||
* @param hodnota
|
||||
* hodnota která se má pøidat pro specifikovaný pøíkaz
|
||||
*/
|
||||
static void setAddToConfigFile(String coSetnout, String co, String hodnota) {
|
||||
co = co.toLowerCase();
|
||||
coSetnout = coSetnout.toLowerCase();
|
||||
static void setAddToConfigFile(String group, String command, String what,
|
||||
String value) {
|
||||
group = group.toLowerCase();
|
||||
command = command.toLowerCase();
|
||||
reload();
|
||||
conf.set("commands.groups." + coSetnout + "." + co, hodnota);
|
||||
conf.set("commands.groups." + group + "." + command + "." + what, value);
|
||||
try {
|
||||
conf.save(confFile);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Could not save configuration file!");
|
||||
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Could not save configuration file!");
|
||||
|
||||
}
|
||||
reload();
|
||||
}
|
||||
|
@ -736,8 +754,11 @@ public class BoosConfigManager {
|
|||
conf.addDefault("options.options.cooldowns_enabled", true);
|
||||
conf.addDefault("options.options.prices_enabled", true);
|
||||
conf.addDefault("options.options.item_cost_enabled", true);
|
||||
conf.addDefault("options.options.xp_cost_enabled", true);
|
||||
conf.addDefault("options.options.limits_enabled", true);
|
||||
conf.addDefault("options.options.auto_save_enabled_CAN_CAUSE_BIG_LAGS", false);
|
||||
conf.addDefault(
|
||||
"options.options.auto_save_enabled_CAN_CAUSE_BIG_LAGS",
|
||||
false);
|
||||
conf.addDefault("options.options.save_interval_in_minutes", 15);
|
||||
conf.addDefault("options.options.cancel_warmup_on_damage", false);
|
||||
conf.addDefault("options.options.cancel_warmup_on_move", false);
|
||||
|
@ -782,10 +803,12 @@ public class BoosConfigManager {
|
|||
"&6Price of&e &command& &6was&e %s &6and you now have&e %s");
|
||||
conf.addDefault("options.messages.paid_items_for_command",
|
||||
"&6Price of&e &command& &6was &e%s");
|
||||
conf
|
||||
.addDefault(
|
||||
"options.messages.insufficient_items",
|
||||
conf.addDefault("options.messages.paid_xp_for_command",
|
||||
"&6Price of&e &command& &6was &e%s levels");
|
||||
conf.addDefault("options.messages.insufficient_items",
|
||||
"&6You have not enough items!&e &command& &6needs &e%s");
|
||||
conf.addDefault("options.messages.insufficient_xp",
|
||||
"&6You have not enough XP!&e &command& &6needs &e%s");
|
||||
conf.addDefault("options.messages.limit_achieved",
|
||||
"&6You cannot use this command anymore!&f");
|
||||
conf.addDefault(
|
||||
|
@ -802,22 +825,28 @@ public class BoosConfigManager {
|
|||
load();
|
||||
}
|
||||
try {
|
||||
conf.addDefault("commands.groups.default./command parameter.cooldown",
|
||||
2);
|
||||
conf.addDefault("commands.groups.default./commandwithparameters *.cooldown",
|
||||
conf.addDefault(
|
||||
"commands.groups.default./command parameter.cooldown", 2);
|
||||
conf.addDefault(
|
||||
"commands.groups.default./commandwithparameters *.cooldown",
|
||||
5);
|
||||
conf.addDefault("commands.groups.default./anothercommand.cooldown",
|
||||
2);
|
||||
conf.addDefault("commands.groups.default./yetanothercommand.warmup",
|
||||
5);
|
||||
conf.addDefault(
|
||||
"commands.groups.default./yetanothercommand.warmup", 5);
|
||||
conf.addDefault("commands.groups.default./yetanothercommand.price",
|
||||
10.0);
|
||||
conf.addDefault("commands.groups.default./yetanothercommand.limit",
|
||||
5);
|
||||
conf.addDefault("commands.groups.default./yetanothercommand.potion",
|
||||
conf.addDefault(
|
||||
"commands.groups.default./yetanothercommand.potion",
|
||||
"WEAKNESS,3");
|
||||
conf.addDefault("commands.groups.default./test.message", "You just used /test!");
|
||||
conf.addDefault("commands.groups.default./test.itemcost", "STONE,10");
|
||||
conf.addDefault("commands.groups.default./test.message",
|
||||
"You just used /test!");
|
||||
conf.addDefault("commands.groups.default./test.itemcost",
|
||||
"STONE,10");
|
||||
conf.addDefault("commands.groups.default./test.xpcost",
|
||||
"6");
|
||||
conf.addDefault("commands.groups.default.*.warmup", 1);
|
||||
conf.addDefault("commands.groups.default.*.cooldown", 1);
|
||||
conf.addDefault("commands.groups.default.*.price", 0.0);
|
||||
|
@ -851,13 +880,15 @@ public class BoosConfigManager {
|
|||
confusersFile.createNewFile();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
BoosCoolDown.getLog().severe("[boosCooldowns] Could not save storage file!");
|
||||
BoosCoolDown.getLog().severe(
|
||||
"[boosCooldowns] Could not save storage file!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static boolean getAutoSave() {
|
||||
return conf.getBoolean("options.options.auto_save_enabled_CAN_CAUSE_BIG_LAGS", false);
|
||||
return conf.getBoolean(
|
||||
"options.options.auto_save_enabled_CAN_CAUSE_BIG_LAGS", false);
|
||||
}
|
||||
|
||||
public static String getPaidItemsForCommandMessage() {
|
||||
|
@ -866,13 +897,33 @@ public class BoosConfigManager {
|
|||
}
|
||||
|
||||
public static String getInsufficientItemsMessage() {
|
||||
return conf
|
||||
.getString(
|
||||
"options.messages.insufficient_items",
|
||||
"&6You have not enough items!&e &command& &6needs &e%s");
|
||||
return conf.getString("options.messages.insufficient_items",
|
||||
"&6You have not enough items!&e &command& &6needs &e%s");
|
||||
}
|
||||
|
||||
public static boolean getItemCostEnabled() {
|
||||
return conf.getBoolean("options.options.item_cost_enabled", true);
|
||||
}
|
||||
|
||||
public static String getPaidXPForCommandMessage() {
|
||||
return conf.getString("options.messages.paid_xp_for_command",
|
||||
"&6Price of&e &command& &6was &e%s");
|
||||
}
|
||||
|
||||
public static int getXpPrice(String regexCommand, Player player) {
|
||||
int price;
|
||||
String group = getCommandGroup(player);
|
||||
price = conf.getInt("commands.groups." + group + "." + regexCommand
|
||||
+ ".xpcost", 0);
|
||||
return price;
|
||||
}
|
||||
|
||||
public static boolean getXpPriceEnabled() {
|
||||
return conf.getBoolean("options.options.xp_cost_enabled", true);
|
||||
}
|
||||
|
||||
public static String getInsufficientXpMessage() {
|
||||
return conf.getString("options.messages.insufficient_xp",
|
||||
"&6You have not enough XP!&e &command& &6needs &e%s");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -229,19 +229,47 @@ public class BoosCoolDown extends JavaPlugin implements Runnable {
|
|||
if (args.length == 4) {
|
||||
if (sender.hasPermission("booscooldowns.set")
|
||||
&& args[0].equalsIgnoreCase("set")) {
|
||||
String coSetnout = args[1];
|
||||
String co = args[2];
|
||||
String hodnota = args[3];
|
||||
if (co.startsWith("/") || co.equals("*")) {
|
||||
if (co.contains("_")) {
|
||||
co = co.replace("_", " ");
|
||||
String what = args[1];
|
||||
String comm = args[2];
|
||||
String value = args[3];
|
||||
String group = "default";
|
||||
if (comm.startsWith("/") || comm.equals("*")) {
|
||||
if (comm.contains("_")) {
|
||||
comm = comm.replace("_", " ");
|
||||
}
|
||||
BoosConfigManager.setAddToConfigFile(coSetnout, co,
|
||||
hodnota);
|
||||
BoosConfigManager.setAddToConfigFile(group, command,
|
||||
what, value);
|
||||
boosChat.sendMessageToCommandSender(sender, "&6["
|
||||
+ pdfFile.getName() + "]&e" + " " + co
|
||||
+ " in group " + coSetnout + " is now set to "
|
||||
+ hodnota);
|
||||
+ pdfFile.getName() + "]&e " + what
|
||||
+ " for command" + comm + " in group " + group
|
||||
+ " is now set to " + value);
|
||||
return true;
|
||||
} else {
|
||||
boosChat.sendMessageToCommandSender(sender, "&6["
|
||||
+ pdfFile.getName() + "]&e"
|
||||
+ " Command has to start with \"/\".");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (args.length == 5) {
|
||||
if (sender.hasPermission("booscooldowns.set")
|
||||
&& args[0].equalsIgnoreCase("set")) {
|
||||
String what = args[1];
|
||||
String comm = args[2];
|
||||
String value = args[3];
|
||||
String group = args[4];
|
||||
if (comm.startsWith("/") || comm.equals("*")) {
|
||||
if (comm.contains("_")) {
|
||||
comm = comm.replace("_", " ");
|
||||
}
|
||||
BoosConfigManager.setAddToConfigFile(group, command,
|
||||
what, value);
|
||||
boosChat.sendMessageToCommandSender(sender, "&6["
|
||||
+ pdfFile.getName() + "]&e " + what
|
||||
+ " for command" + comm + " in group " + group
|
||||
+ " is now set to " + value);
|
||||
return true;
|
||||
} else {
|
||||
boosChat.sendMessageToCommandSender(sender, "&6["
|
||||
|
@ -252,11 +280,8 @@ public class BoosCoolDown extends JavaPlugin implements Runnable {
|
|||
}
|
||||
|
||||
} else {
|
||||
boosChat.sendMessageToCommandSender(
|
||||
sender,
|
||||
"&6["
|
||||
+ pdfFile.getName()
|
||||
+ "]&e"
|
||||
boosChat.sendMessageToCommandSender(sender,
|
||||
"&6[" + pdfFile.getName() + "]&e"
|
||||
+ " Invalid command or access denied!");
|
||||
}
|
||||
}
|
||||
|
@ -301,10 +326,10 @@ public class BoosCoolDown extends JavaPlugin implements Runnable {
|
|||
registerListeners();
|
||||
initializeVault();
|
||||
BukkitScheduler scheduler = this.getServer().getScheduler();
|
||||
if (BoosConfigManager.getAutoSave()){
|
||||
scheduler.scheduleSyncRepeatingTask(this, this,
|
||||
BoosConfigManager.getSaveInterval() * 1200,
|
||||
BoosConfigManager.getSaveInterval() * 1200);
|
||||
if (BoosConfigManager.getAutoSave()) {
|
||||
scheduler.scheduleSyncRepeatingTask(this, this,
|
||||
BoosConfigManager.getSaveInterval() * 1200,
|
||||
BoosConfigManager.getSaveInterval() * 1200);
|
||||
}
|
||||
if (BoosConfigManager.getClearOnRestart()) {
|
||||
BoosConfigManager.clear();
|
||||
|
|
|
@ -11,9 +11,10 @@ import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|||
import util.boosChat;
|
||||
|
||||
/**
|
||||
* Hlavn<EFBFBD> poslucha<EFBFBD>, kter<EFBFBD> naslouch<EFBFBD> ud<EFBFBD>losti pou<EFBFBD>it<EFBFBD> p<EFBFBD><EFBFBD>kazu hr<EFBFBD><EFBFBD>em.
|
||||
* Kontroluje, jestli jsou pro p<EFBFBD><EFBFBD>kaz nastaveny omezen<EFBFBD> a na z<EFBFBD>klad<EFBFBD> tohoto
|
||||
* spou<EFBFBD>t<EFBFBD> <EFBFBD>asova<EFBFBD>e a vol<EFBFBD> metody spojen<EFBFBD> s poplatky a limity.
|
||||
* Hlavn<EFBFBD> poslucha<EFBFBD>, kter<EFBFBD> naslouch<EFBFBD> ud<EFBFBD>losti pou<EFBFBD>it<EFBFBD> p<EFBFBD><EFBFBD>kazu
|
||||
* hr<EFBFBD><EFBFBD>em. Kontroluje, jestli jsou pro p<EFBFBD><EFBFBD>kaz nastaveny omezen<EFBFBD> a na
|
||||
* z<EFBFBD>klad<EFBFBD> tohoto spou<EFBFBD>t<EFBFBD> <EFBFBD>asova<EFBFBD>e a vol<EFBFBD> metody spojen<EFBFBD> s
|
||||
* poplatky a limity.
|
||||
*
|
||||
* @author Jakub Kol<EFBFBD><EFBFBD>
|
||||
*
|
||||
|
@ -29,17 +30,18 @@ public class BoosCoolDownListener implements Listener {
|
|||
}
|
||||
|
||||
/**
|
||||
* Metoda zkontroluje pomoc<EFBFBD> vol<EFBFBD>n<EFBFBD> dal<EFBFBD><EFBFBD>ch metod, jestli p<EFBFBD>ikaz kter<EFBFBD> hr<EFBFBD><EFBFBD>
|
||||
* pou<EFBFBD>il je n<EFBFBD>jak<EFBFBD>m zp<EFBFBD>sobem omezen<EFBFBD> a na z<EFBFBD>klad<EFBFBD> toho je bu<EFBFBD> ud<EFBFBD>lost
|
||||
* pou<EFBFBD>it<EFBFBD> p<EFBFBD><EFBFBD>kazu stornov<EFBFBD>na, nebo ne.
|
||||
* Metoda zkontroluje pomoc<EFBFBD> vol<EFBFBD>n<EFBFBD> dal<EFBFBD><EFBFBD>ch metod, jestli p<EFBFBD>ikaz
|
||||
* kter<EFBFBD> hr<EFBFBD><EFBFBD> pou<EFBFBD>il je n<EFBFBD>jak<EFBFBD>m zp<EFBFBD>sobem omezen<EFBFBD> a na
|
||||
* z<EFBFBD>klad<EFBFBD> toho je bu<EFBFBD> ud<EFBFBD>lost pou<EFBFBD>it<EFBFBD> p<EFBFBD><EFBFBD>kazu stornov<EFBFBD>na,
|
||||
* nebo ne.
|
||||
*
|
||||
* @param event
|
||||
* ud<EFBFBD>lost PlayerCommandPreprocessEvent
|
||||
* @param player
|
||||
* hr<EFBFBD><EFBFBD> kter<EFBFBD> spustil tuto ud<EFBFBD>lost
|
||||
* @param regexCommad
|
||||
* p<EFBFBD><EFBFBD>kaz z konfigura<EFBFBD>n<EFBFBD>ho souboru, kter<EFBFBD> vyhovuje origin<EFBFBD>ln<EFBFBD>mu
|
||||
* p<EFBFBD><EFBFBD>kazu
|
||||
* p<EFBFBD><EFBFBD>kaz z konfigura<EFBFBD>n<EFBFBD>ho souboru, kter<EFBFBD> vyhovuje
|
||||
* origin<EFBFBD>ln<EFBFBD>mu p<EFBFBD><EFBFBD>kazu
|
||||
* @param originalCommand
|
||||
* origin<EFBFBD>ln<EFBFBD> p<EFBFBD><EFBFBD>kaz kter<EFBFBD> hr<EFBFBD><EFBFBD> pou<EFBFBD>il
|
||||
* @param warmupTime
|
||||
|
@ -54,7 +56,7 @@ public class BoosCoolDownListener implements Listener {
|
|||
private void checkRestrictions(PlayerCommandPreprocessEvent event,
|
||||
Player player, String regexCommad, String originalCommand,
|
||||
int warmupTime, int cooldownTime, double price, String item,
|
||||
int count, int limit) {
|
||||
int count, int limit, int xpPrice) {
|
||||
boolean blocked = BoosLimitManager.blocked(player, regexCommad,
|
||||
originalCommand, limit);
|
||||
if (!blocked) {
|
||||
|
@ -65,14 +67,17 @@ public class BoosCoolDownListener implements Listener {
|
|||
start(event, player, regexCommad, originalCommand,
|
||||
warmupTime, cooldownTime);
|
||||
}
|
||||
} else if (BoosPriceManager.has(player, price) & BoosItemCostManager.has(player, item, count)){
|
||||
} else if (BoosPriceManager.has(player, price)
|
||||
& BoosItemCostManager.has(player, item, count)
|
||||
& BoosXpCostManager.has(player, xpPrice)) {
|
||||
if (BoosCoolDownManager.coolDown(player, regexCommad,
|
||||
originalCommand, cooldownTime)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
if (BoosPriceManager.has(player, price)
|
||||
& BoosItemCostManager.has(player, item, count)) {
|
||||
& BoosItemCostManager.has(player, item, count)
|
||||
& BoosXpCostManager.has(player, xpPrice)) {
|
||||
if (!event.isCancelled()) {
|
||||
BoosPriceManager.payForCommand(event, player, regexCommad,
|
||||
originalCommand, price);
|
||||
|
@ -81,8 +86,14 @@ public class BoosCoolDownListener implements Listener {
|
|||
BoosItemCostManager.payItemForCommand(event, player,
|
||||
regexCommad, originalCommand, item, count);
|
||||
}
|
||||
if (!event.isCancelled()) {
|
||||
BoosXpCostManager.payXPForCommand(event, player,
|
||||
regexCommad, originalCommand, xpPrice);
|
||||
}
|
||||
} else {
|
||||
if (!BoosPriceManager.has(player, price) & !BoosWarmUpManager.isWarmUpProcess(player, regexCommad)) {
|
||||
if (!BoosPriceManager.has(player, price)
|
||||
& !BoosWarmUpManager.isWarmUpProcess(player,
|
||||
regexCommad)) {
|
||||
String unit;
|
||||
String msg = "";
|
||||
if (price == 1) {
|
||||
|
@ -99,7 +110,9 @@ public class BoosCoolDownListener implements Listener {
|
|||
msg = msg.replaceAll("&command&", originalCommand);
|
||||
boosChat.sendMessageToPlayer(player, msg);
|
||||
}
|
||||
if (!BoosItemCostManager.has(player, item, count) & !BoosWarmUpManager.isWarmUpProcess(player, regexCommad)) {
|
||||
if (!BoosItemCostManager.has(player, item, count)
|
||||
& !BoosWarmUpManager.isWarmUpProcess(player,
|
||||
regexCommad)) {
|
||||
String msg = "";
|
||||
msg = String.format(
|
||||
BoosConfigManager.getInsufficientItemsMessage(),
|
||||
|
@ -107,6 +120,16 @@ public class BoosCoolDownListener implements Listener {
|
|||
msg = msg.replaceAll("&command&", originalCommand);
|
||||
boosChat.sendMessageToPlayer(player, msg);
|
||||
}
|
||||
if (!BoosXpCostManager.has(player, xpPrice)
|
||||
& !BoosWarmUpManager.isWarmUpProcess(player,
|
||||
regexCommad)) {
|
||||
String msg = "";
|
||||
msg = String.format(
|
||||
BoosConfigManager.getInsufficientXpMessage(),
|
||||
(xpPrice));
|
||||
msg = msg.replaceAll("&command&", originalCommand);
|
||||
boosChat.sendMessageToPlayer(player, msg);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
}
|
||||
if (!event.isCancelled()) {
|
||||
|
@ -131,12 +154,14 @@ public class BoosCoolDownListener implements Listener {
|
|||
}
|
||||
|
||||
/**
|
||||
* Poslucha<EFBFBD>, kter<EFBFBD> naslouch<EFBFBD> ud<EFBFBD>losti pou<EFBFBD>it<EFBFBD> p<EFBFBD><EFBFBD>kazu a spou<EFBFBD>t<EFBFBD> se je<EFBFBD>t<EFBFBD>
|
||||
* p<EFBFBD>ed t<EFBFBD>m, ne<EFBFBD> je vykon<EFBFBD>n efekt tohto p<EFBFBD><EFBFBD>kazu. Metoda zji<EFBFBD><EFBFBD>uje, jestli
|
||||
* p<EFBFBD><EFBFBD>kaz nen<EFBFBD> alias jin<EFBFBD>ho p<EFBFBD><EFBFBD>kazu a tak<EFBFBD> jestli se p<EFBFBD><EFBFBD>kaz kter<EFBFBD> hr<EFBFBD><EFBFBD>
|
||||
* pou<EFBFBD>il shoduje s p<EFBFBD><EFBFBD>kazem nastaven<EFBFBD>m v konfiguraci. Pokud se shoduje, pak
|
||||
* jsou na<EFBFBD>teny informace o warmup dob<EFBFBD>, cooldown dob<EFBFBD>, poplatku a limitu.
|
||||
* Tyto hodnoty jsou pot<EFBFBD> p<EFBFBD>ed<EFBFBD>ny metod<EFBFBD> checkRestrictions();.
|
||||
* Poslucha<EFBFBD>, kter<EFBFBD> naslouch<EFBFBD> ud<EFBFBD>losti pou<EFBFBD>it<EFBFBD> p<EFBFBD><EFBFBD>kazu a
|
||||
* spou<EFBFBD>t<EFBFBD> se je<EFBFBD>t<EFBFBD> p<EFBFBD>ed t<EFBFBD>m, ne<EFBFBD> je vykon<EFBFBD>n efekt tohto
|
||||
* p<EFBFBD><EFBFBD>kazu. Metoda zji<EFBFBD><EFBFBD>uje, jestli p<EFBFBD><EFBFBD>kaz nen<EFBFBD> alias jin<EFBFBD>ho
|
||||
* p<EFBFBD><EFBFBD>kazu a tak<EFBFBD> jestli se p<EFBFBD><EFBFBD>kaz kter<EFBFBD> hr<EFBFBD><EFBFBD> pou<EFBFBD>il
|
||||
* shoduje s p<EFBFBD><EFBFBD>kazem nastaven<EFBFBD>m v konfiguraci. Pokud se shoduje, pak
|
||||
* jsou na<EFBFBD>teny informace o warmup dob<EFBFBD>, cooldown dob<EFBFBD>, poplatku a
|
||||
* limitu. Tyto hodnoty jsou pot<EFBFBD> p<EFBFBD>ed<EFBFBD>ny metod<EFBFBD>
|
||||
* checkRestrictions();.
|
||||
*
|
||||
* @param event
|
||||
* ud<EFBFBD>lost PlayerCommandPreprocessEvent
|
||||
|
@ -161,6 +186,7 @@ public class BoosCoolDownListener implements Listener {
|
|||
double price = 0;
|
||||
int limit = -1;
|
||||
int cooldownTime = 0;
|
||||
int xpPrice = 0;
|
||||
on = BoosCoolDown.isPluginOnForPlayer(player);
|
||||
try {
|
||||
if (aliases.contains(originalCommand)) {
|
||||
|
@ -196,6 +222,10 @@ public class BoosCoolDownListener implements Listener {
|
|||
if (BoosConfigManager.getPriceEnabled()) {
|
||||
price = BoosConfigManager.getPrice(regexCommad, player);
|
||||
}
|
||||
if (BoosConfigManager.getXpPriceEnabled()) {
|
||||
price = BoosConfigManager.getXpPrice(regexCommad,
|
||||
player);
|
||||
}
|
||||
if (BoosConfigManager.getItemCostEnabled()) {
|
||||
item = BoosConfigManager.getItemCostItem(regexCommad,
|
||||
player);
|
||||
|
@ -209,21 +239,22 @@ public class BoosCoolDownListener implements Listener {
|
|||
}
|
||||
}
|
||||
this.checkRestrictions(event, player, regexCommad, originalCommand,
|
||||
warmupTime, cooldownTime, price, item, count, limit);
|
||||
warmupTime, cooldownTime, price, item, count, limit,
|
||||
xpPrice);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Metoda spou<EFBFBD>t<EFBFBD> warmup a cooldown <EFBFBD>asova<EFBFBD>e, p<EFBFBD><EFBFBD>padn<EFBFBD> je ukon<EFBFBD>uje, pokud
|
||||
* ji<EFBFBD> tyto <EFBFBD>asova<EFBFBD>e skon<EFBFBD>ili.
|
||||
* Metoda spou<EFBFBD>t<EFBFBD> warmup a cooldown <EFBFBD>asova<EFBFBD>e, p<EFBFBD><EFBFBD>padn<EFBFBD> je
|
||||
* ukon<EFBFBD>uje, pokud ji<EFBFBD> tyto <EFBFBD>asova<EFBFBD>e skon<EFBFBD>ili.
|
||||
*
|
||||
* @param event
|
||||
* ud<EFBFBD>lost PlayerCommandPreprocessEvent
|
||||
* @param player
|
||||
* hr<EFBFBD><EFBFBD> kter<EFBFBD> spustil tuto ud<EFBFBD>lost
|
||||
* @param regexCommad
|
||||
* p<EFBFBD><EFBFBD>kaz z konfigura<EFBFBD>n<EFBFBD>ho souboru, kter<EFBFBD> vyhovuje origin<EFBFBD>ln<EFBFBD>mu
|
||||
* p<EFBFBD><EFBFBD>kazu
|
||||
* p<EFBFBD><EFBFBD>kaz z konfigura<EFBFBD>n<EFBFBD>ho souboru, kter<EFBFBD> vyhovuje
|
||||
* origin<EFBFBD>ln<EFBFBD>mu p<EFBFBD><EFBFBD>kazu
|
||||
* @param originalCommand
|
||||
* origin<EFBFBD>ln<EFBFBD> p<EFBFBD><EFBFBD>kaz kter<EFBFBD> hr<EFBFBD><EFBFBD> pou<EFBFBD>il
|
||||
* @param warmupTime
|
||||
|
|
|
@ -9,7 +9,8 @@ import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|||
import util.boosChat;
|
||||
|
||||
/**
|
||||
* T<EFBFBD><EFBFBD>da obsahuje ve<EFBFBD>ker<EFBFBD> metody pot<EFBFBD>ebn<EFBFBD> k <EFBFBD><EFBFBD>zen<EFBFBD> poplatk<EFBFBD> pomoc<EFBFBD> v<EFBFBD>c<EFBFBD> za p<EFBFBD><EFBFBD>kazy.
|
||||
* T<EFBFBD><EFBFBD>da obsahuje ve<EFBFBD>ker<EFBFBD> metody pot<EFBFBD>ebn<EFBFBD> k <EFBFBD><EFBFBD>zen<EFBFBD> poplatk<EFBFBD>
|
||||
* pomoc<EFBFBD> v<EFBFBD>c<EFBFBD> za p<EFBFBD><EFBFBD>kazy.
|
||||
*
|
||||
* @author Jakub Kol<EFBFBD><EFBFBD>
|
||||
*
|
||||
|
@ -19,13 +20,14 @@ public class BoosPriceManager {
|
|||
private static String msg = "";
|
||||
|
||||
/**
|
||||
* Metoda zaji<EFBFBD><EFBFBD>uje funkci platby za p<EFBFBD><EFBFBD>kaz. Vrac<EFBFBD> hodnotu v z<EFBFBD>vislosti na
|
||||
* <EFBFBD>sp<EFBFBD>nosti platby.
|
||||
* Metoda zaji<EFBFBD><EFBFBD>uje funkci platby za p<EFBFBD><EFBFBD>kaz. Vrac<EFBFBD> hodnotu v
|
||||
* z<EFBFBD>vislosti na <EFBFBD>sp<EFBFBD>nosti platby.
|
||||
*
|
||||
* @param player
|
||||
* specifikovan<EFBFBD> hr<EFBFBD><EFBFBD>
|
||||
* @param regexCommand
|
||||
* p<EFBFBD><EFBFBD>kaz z konfigurace vyhovuj<EFBFBD>c<EFBFBD> origin<EFBFBD>ln<EFBFBD>mu p<EFBFBD><EFBFBD>kazu
|
||||
* p<EFBFBD><EFBFBD>kaz z konfigurace vyhovuj<EFBFBD>c<EFBFBD> origin<EFBFBD>ln<EFBFBD>mu
|
||||
* p<EFBFBD><EFBFBD>kazu
|
||||
* @param originalCommand
|
||||
* origin<EFBFBD>ln<EFBFBD> p<EFBFBD><EFBFBD>kaz pou<EFBFBD>it<EFBFBD> hr<EFBFBD><EFBFBD>em
|
||||
* @param price
|
||||
|
@ -33,8 +35,8 @@ public class BoosPriceManager {
|
|||
* @param name
|
||||
* jm<EFBFBD>no specifick<EFBFBD>ho hr<EFBFBD><EFBFBD>e
|
||||
* @return true pokud byl <EFBFBD>sp<EFBFBD>n<EFBFBD> zaplacen poplatek, nebo pokud nebyl
|
||||
* nalezen ekonomick<EFBFBD> plugin; false pokud do<EFBFBD>lo k chyb<EFBFBD> nebo hr<EFBFBD><EFBFBD>
|
||||
* nem<EFBFBD>l dostatek financ<EFBFBD>
|
||||
* nalezen ekonomick<EFBFBD> plugin; false pokud do<EFBFBD>lo k chyb<EFBFBD> nebo
|
||||
* hr<EFBFBD><EFBFBD> nem<EFBFBD>l dostatek financ<EFBFBD>
|
||||
*/
|
||||
static boolean payForCommand(Player player, String regexCommand,
|
||||
String originalCommand, double price, String name) {
|
||||
|
@ -50,16 +52,16 @@ public class BoosPriceManager {
|
|||
return true;
|
||||
} else {
|
||||
if (r.errorMessage.equals("Insufficient funds")) {
|
||||
// String unit;
|
||||
// if (price == 1) {
|
||||
// unit = economy.currencyNameSingular();
|
||||
// } else {
|
||||
// unit = economy.currencyNamePlural();
|
||||
// }
|
||||
// msg = String.format(
|
||||
// BoosConfigManager.getInsufficientFundsMessage(), (price
|
||||
// + " " + unit), economy.format(r.balance));
|
||||
// msg = msg.replaceAll("&command&", originalCommand);
|
||||
// String unit;
|
||||
// if (price == 1) {
|
||||
// unit = economy.currencyNameSingular();
|
||||
// } else {
|
||||
// unit = economy.currencyNamePlural();
|
||||
// }
|
||||
// msg = String.format(
|
||||
// BoosConfigManager.getInsufficientFundsMessage(), (price
|
||||
// + " " + unit), economy.format(r.balance));
|
||||
// msg = msg.replaceAll("&command&", originalCommand);
|
||||
} else {
|
||||
msg = String.format(BoosConfigManager.getPaidErrorMessage(),
|
||||
r.errorMessage);
|
||||
|
@ -70,16 +72,18 @@ public class BoosPriceManager {
|
|||
}
|
||||
|
||||
/**
|
||||
* Metoda ukon<EFBFBD>uje/neukon<EFBFBD>uje ud<EFBFBD>lost pou<EFBFBD>it<EFBFBD> p<EFBFBD><EFBFBD>kazu v z<EFBFBD>vislosti na tom,
|
||||
* jakou hodnotu vr<EFBFBD>tila metoda payForCommand(Player player, String
|
||||
* regexCommand, String originalCommand, double price, String name);.
|
||||
* Metoda ukon<EFBFBD>uje/neukon<EFBFBD>uje ud<EFBFBD>lost pou<EFBFBD>it<EFBFBD> p<EFBFBD><EFBFBD>kazu v
|
||||
* z<EFBFBD>vislosti na tom, jakou hodnotu vr<EFBFBD>tila metoda payForCommand(Player
|
||||
* player, String regexCommand, String originalCommand, double price, String
|
||||
* name);.
|
||||
*
|
||||
* @param event
|
||||
* ud<EFBFBD>lost PlayerCommandPreprocessEvent
|
||||
* @param player
|
||||
* specifick<EFBFBD> hr<EFBFBD><EFBFBD>
|
||||
* @param regexCommand
|
||||
* p<EFBFBD><EFBFBD>kaz z konfigurace vyhovuj<EFBFBD>c<EFBFBD> origin<EFBFBD>ln<EFBFBD>mu p<EFBFBD><EFBFBD>kazu
|
||||
* p<EFBFBD><EFBFBD>kaz z konfigurace vyhovuj<EFBFBD>c<EFBFBD> origin<EFBFBD>ln<EFBFBD>mu
|
||||
* p<EFBFBD><EFBFBD>kazu
|
||||
* @param originalCommand
|
||||
* origin<EFBFBD>ln<EFBFBD> p<EFBFBD><EFBFBD>kaz pou<EFBFBD>it<EFBFBD> hr<EFBFBD><EFBFBD>em
|
||||
* @param price
|
||||
|
@ -106,9 +110,9 @@ public class BoosPriceManager {
|
|||
}
|
||||
|
||||
public static boolean has(Player player, double price) {
|
||||
if(economy == null){
|
||||
if (economy == null) {
|
||||
return true;
|
||||
}else {
|
||||
} else {
|
||||
return economy.has(player.getName(), price);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import org.bukkit.entity.Player;
|
|||
* Třída starající se o samotné časovače warmupů pomocí TimerTask
|
||||
*
|
||||
* @author Jakub Kolář
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class BoosWarmUpTimer extends TimerTask {
|
||||
|
||||
|
|
|
@ -26,10 +26,10 @@ public class BoosPlayerGameModeChangeListener implements Listener {
|
|||
/**
|
||||
* Metoda zjišťuje jestli je entita která spustila tuto událost hráč. Pokud
|
||||
* je entita hráč, hráč není null a nedisponuje oprávněním
|
||||
* booscooldowns.nocancel.gamemodechange a pokud tento hráč disponuje aktivními
|
||||
* warmup časovači, pak je hráči odeslána zpráva, která ho informuje o
|
||||
* ukončení všech warmup časovačů a následně tyto časovače ukončuje pomocí
|
||||
* metody cancelWarmUps();.
|
||||
* booscooldowns.nocancel.gamemodechange a pokud tento hráč disponuje
|
||||
* aktivními warmup časovači, pak je hráči odeslána zpráva, která ho
|
||||
* informuje o ukončení všech warmup časovačů a následně tyto časovače
|
||||
* ukončuje pomocí metody cancelWarmUps();.
|
||||
*
|
||||
* @param event
|
||||
* událost PlayerGameModeChangeEvent
|
||||
|
|
|
@ -41,7 +41,7 @@ public class BoosPlayerMoveListener implements Listener {
|
|||
Location cmdloc = BoosWarmUpManager.getPlayerloc().get(player);
|
||||
if (!curworld.equals(cmdworld)) {
|
||||
return true;
|
||||
} else if (cmdloc.distanceSquared(curloc) > 2) {
|
||||
} else if (cmdloc.distance(curloc) > 1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -51,13 +51,12 @@ public class BoosPlayerMoveListener implements Listener {
|
|||
private int tempTimer = 0;
|
||||
|
||||
/**
|
||||
* Pokud hráč není null a nedisponuje oprávněním
|
||||
* booscooldowns.nocancel.move a pokud tento hráč disponuje aktivními
|
||||
* warmup časovači, pak je hráči odeslána zpráva, která ho informuje o
|
||||
* ukončení všech warmup časovačů a následně tyto časovače ukončuje pomocí
|
||||
* metody cancelWarmUps();. Metoda obsahuje jednoduchý časovač, který
|
||||
* zajišťuje, že funkce nebudou prováděny při každém volání této metody (20x
|
||||
* za vteřinu).
|
||||
* Pokud hráč není null a nedisponuje oprávněním booscooldowns.nocancel.move
|
||||
* a pokud tento hráč disponuje aktivními warmup časovači, pak je hráči
|
||||
* odeslána zpráva, která ho informuje o ukončení všech warmup časovačů a
|
||||
* následně tyto časovače ukončuje pomocí metody cancelWarmUps();. Metoda
|
||||
* obsahuje jednoduchý časovač, který zajišťuje, že funkce nebudou prováděny
|
||||
* při každém volání této metody (20x za vteřinu).
|
||||
*
|
||||
* @param event
|
||||
* událost PlayerMoveEvent
|
||||
|
|
|
@ -11,7 +11,7 @@ import cz.boosik.boosCooldown.BoosConfigManager;
|
|||
|
||||
/**
|
||||
* @author Jakub Koláø
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class BoosSignChangeListener implements Listener {
|
||||
/**
|
||||
|
|
|
@ -15,7 +15,7 @@ import cz.boosik.boosCooldown.BoosCoolDown;
|
|||
|
||||
/**
|
||||
* @author Jakub
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class BoosSignInteractListener implements Listener {
|
||||
private final BoosCoolDown plugin;
|
||||
|
|
Loading…
Reference in New Issue