Added XP costs, fixed commands, fixed cancel on move

This commit is contained in:
Boosik 2014-02-08 00:05:47 +01:00
parent 0430fce95e
commit dd5d591d4b
10 changed files with 261 additions and 137 deletions

View File

@ -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

View File

@ -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 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");
}
}

View File

@ -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();

View File

@ -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

View File

@ -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);
}
}

View File

@ -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 {

View File

@ -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

View File

@ -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

View File

@ -11,7 +11,7 @@ import cz.boosik.boosCooldown.BoosConfigManager;
/**
* @author Jakub Koláø
*
*
*/
public class BoosSignChangeListener implements Listener {
/**

View File

@ -15,7 +15,7 @@ import cz.boosik.boosCooldown.BoosCoolDown;
/**
* @author Jakub
*
*
*/
public class BoosSignInteractListener implements Listener {
private final BoosCoolDown plugin;