add command signs

This commit is contained in:
Boos 2012-09-03 13:46:50 +02:00
parent 3c64114d42
commit 84324ba23b
3 changed files with 320 additions and 240 deletions

View File

@ -48,6 +48,7 @@ public class boosConfigManager {
conf.addDefault("options.options.clear_uses_on_death", false);
conf.addDefault("options.options.clear_cooldowns_on_death", false);
conf.addDefault("options.options.command_logging", false);
conf.addDefault("options.options.command_signs", false);
conf.addDefault("options.units.seconds", "seconds");
conf.addDefault("options.units.minutes", "minutes");
conf.addDefault("options.units.hours", "hours");
@ -62,9 +63,6 @@ public class boosConfigManager {
conf.addDefault(
"options.messages.warmup_cancelled_by_gamemode_change",
"&6Warm-ups have been cancelled due to changing gamemode.&f");
// conf.addDefault(
// "commands.options.message_warmup_cancelled_by_death",
// "&6Warm-ups have been cancelled due to death.&f");
conf.addDefault("options.messages.cooling_down",
"&6Wait&e &seconds& &unit&&6 before you can use command&e &command& &6again.&f");
conf.addDefault("options.messages.warming_up",
@ -81,6 +79,10 @@ public class boosConfigManager {
"&6Limit for command &e&command&&6 is &e&limit&&6. You can still use it &e&times&&6 times.&f");
conf.addDefault("options.messages.interact_blocked_during_warmup",
"&6You can't do this when command is warming-up!&f");
conf.addDefault("options.messages.cannot_create_sign",
"&6You are not allowed to create this kind of signs!&f");
conf.addDefault("options.messages.cannot_use_sign",
"&6You are not allowed to use this sign!&f");
}
if (confFile.exists()) {
try {
@ -498,4 +500,19 @@ public class boosConfigManager {
public static String getAlias(String message){
return conf.getString("commands.aliases." + message);
}
public static boolean getSignCommands() {
return conf.getBoolean("options.options.command_signs",
false);
}
public static String getCannotUseSignMessage() {
return conf.getString("options.messages.cannot_use_sign",
"&6You are not allowed to use this sign!&f");
}
public static String getCannotCreateSignMessage() {
return conf.getString("options.messages.cannot_create_sign",
"&6You are not allowed to create this kind of signs!&f");
}
}

View File

@ -3,12 +3,16 @@ package cz.boosik.boosCooldown;
import java.util.concurrent.ConcurrentHashMap;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Sign;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
@ -32,13 +36,13 @@ public class boosCoolDownListener<a> implements Listener {
}
@EventHandler(priority = EventPriority.LOW)
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
private void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
if (event.isCancelled()) {
return;
}
ConfigurationSection aliases = boosConfigManager.getAliases();
String message = event.getMessage();
if (aliases.contains(message)){
if (aliases.contains(message)) {
message = boosConfigManager.getAlias(message);
event.setMessage(message);
}
@ -180,125 +184,105 @@ public class boosCoolDownListener<a> implements Listener {
private int preSubCheck(Player player, String preSub) {
if (player.hasPermission("booscooldowns.warmup2")) {
return boosConfigManager.getWarmUp2(preSub);
} else if (player.hasPermission("booscooldowns.warmup3")) {
return boosConfigManager.getWarmUp3(preSub);
} else if (player.hasPermission(
"booscooldowns.warmup4")) {
return boosConfigManager.getWarmUp4(preSub);
} else if (player.hasPermission(
"booscooldowns.warmup5")) {
return boosConfigManager.getWarmUp5(preSub);
} else {
return boosConfigManager.getWarmUp(preSub);
}
if (player.hasPermission("booscooldowns.warmup2")) {
return boosConfigManager.getWarmUp2(preSub);
} else if (player.hasPermission("booscooldowns.warmup3")) {
return boosConfigManager.getWarmUp3(preSub);
} else if (player.hasPermission("booscooldowns.warmup4")) {
return boosConfigManager.getWarmUp4(preSub);
} else if (player.hasPermission("booscooldowns.warmup5")) {
return boosConfigManager.getWarmUp5(preSub);
} else {
return boosConfigManager.getWarmUp(preSub);
}
}
private int preLimitCheck(Player player, String preSub) {
if (player.hasPermission(
"booscooldowns.limit2")) {
return boosConfigManager.getLimit2(preSub);
} else if (player.hasPermission(
"booscooldowns.limit3")) {
return boosConfigManager.getLimit3(preSub);
} else if (player.hasPermission(
"booscooldowns.limit4")) {
return boosConfigManager.getLimit4(preSub);
} else if (player.hasPermission(
"booscooldowns.limit5")) {
return boosConfigManager.getLimit5(preSub);
} else {
return boosConfigManager.getLimit(preSub);
}
if (player.hasPermission("booscooldowns.limit2")) {
return boosConfigManager.getLimit2(preSub);
} else if (player.hasPermission("booscooldowns.limit3")) {
return boosConfigManager.getLimit3(preSub);
} else if (player.hasPermission("booscooldowns.limit4")) {
return boosConfigManager.getLimit4(preSub);
} else if (player.hasPermission("booscooldowns.limit5")) {
return boosConfigManager.getLimit5(preSub);
} else {
return boosConfigManager.getLimit(preSub);
}
}
private int preCDCheck(Player player, String preSub) {
if (player.hasPermission(
"booscooldowns.cooldown2")) {
return boosConfigManager.getCoolDown2(preSub);
} else if (player.hasPermission(
"booscooldowns.cooldown3")) {
return boosConfigManager.getCoolDown3(preSub);
} else if (player.hasPermission(
"booscooldowns.cooldown4")) {
return boosConfigManager.getCoolDown4(preSub);
} else if (player.hasPermission(
"booscooldowns.cooldown5")) {
return boosConfigManager.getCoolDown5(preSub);
} else {
return boosConfigManager.getCoolDown(preSub);
}
if (player.hasPermission("booscooldowns.cooldown2")) {
return boosConfigManager.getCoolDown2(preSub);
} else if (player.hasPermission("booscooldowns.cooldown3")) {
return boosConfigManager.getCoolDown3(preSub);
} else if (player.hasPermission("booscooldowns.cooldown4")) {
return boosConfigManager.getCoolDown4(preSub);
} else if (player.hasPermission("booscooldowns.cooldown5")) {
return boosConfigManager.getCoolDown5(preSub);
} else {
return boosConfigManager.getCoolDown(preSub);
}
}
public int prePriceCheck(Player player, String preSub) {
if (player.hasPermission(
"booscooldowns.cooldown2")) {
return boosConfigManager.getPrice2(preSub);
} else if (player.hasPermission(
"booscooldowns.cooldown3")) {
return boosConfigManager.getPrice3(preSub);
} else if (player.hasPermission(
"booscooldowns.cooldown4")) {
return boosConfigManager.getPrice4(preSub);
} else if (player.hasPermission(
"booscooldowns.cooldown5")) {
return boosConfigManager.getPrice5(preSub);
} else {
return boosConfigManager.getPrice(preSub);
}
private int prePriceCheck(Player player, String preSub) {
if (player.hasPermission("booscooldowns.cooldown2")) {
return boosConfigManager.getPrice2(preSub);
} else if (player.hasPermission("booscooldowns.cooldown3")) {
return boosConfigManager.getPrice3(preSub);
} else if (player.hasPermission("booscooldowns.cooldown4")) {
return boosConfigManager.getPrice4(preSub);
} else if (player.hasPermission("booscooldowns.cooldown5")) {
return boosConfigManager.getPrice5(preSub);
} else {
return boosConfigManager.getPrice(preSub);
}
}
private boolean blocked(Player player, String pre, String msg) {
int limit = -1;
int uses = boosCoolDownManager.getUses(player, pre, msg);
if (player.hasPermission(
"booscooldowns.nolimit")
|| player.hasPermission(
"booscooldowns.nolimit." + pre)) {
if (player.hasPermission("booscooldowns.nolimit")
|| player.hasPermission("booscooldowns.nolimit." + pre)) {
} else {
if (player.hasPermission("booscooldowns.limit2")) {
limit = boosConfigManager.getLimit2(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
} else if (player.hasPermission("booscooldowns.limit3")) {
limit = boosConfigManager.getLimit3(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
} else if (player.hasPermission("booscooldowns.limit4")) {
limit = boosConfigManager.getLimit4(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
} else if (player.hasPermission("booscooldowns.limit5")) {
limit = boosConfigManager.getLimit5(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
} else {
if (player.hasPermission(
"booscooldowns.limit2")) {
limit = boosConfigManager.getLimit2(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
} else if (player.hasPermission(
"booscooldowns.limit3")) {
limit = boosConfigManager.getLimit3(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
} else if (player.hasPermission(
"booscooldowns.limit4")) {
limit = boosConfigManager.getLimit4(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
} else if (player.hasPermission(
"booscooldowns.limit5")) {
limit = boosConfigManager.getLimit5(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
} else {
limit = boosConfigManager.getLimit(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
limit = boosConfigManager.getLimit(pre);
if (limit == -1) {
return false;
} else if (limit <= uses) {
return true;
}
}
}
return false;
}
@ -307,8 +291,7 @@ public class boosCoolDownListener<a> implements Listener {
if (player.isOp()) {
on = false;
}
if (player.hasPermission(
"booscooldowns.exception")) {
if (player.hasPermission("booscooldowns.exception")) {
on = false;
} else if (player.isOp()) {
on = false;
@ -323,18 +306,17 @@ public class boosCoolDownListener<a> implements Listener {
Player player, String pre, String message, int warmUpSeconds,
int price) {
if (!blocked) {
if (warmUpSeconds > 0) {
if (!player.hasPermission(
"booscooldowns.nowarmup")
&& !player.hasPermission(
"booscooldowns.nowarmup." + pre)) {
start(event, player, pre, message, warmUpSeconds);
}
} else {
if (boosCoolDownManager.coolDown(player, pre)) {
event.setCancelled(true);
}
if (warmUpSeconds > 0) {
if (!player.hasPermission("booscooldowns.nowarmup")
&& !player.hasPermission("booscooldowns.nowarmup."
+ pre)) {
start(event, player, pre, message, warmUpSeconds);
}
} else {
if (boosCoolDownManager.coolDown(player, pre)) {
event.setCancelled(true);
}
}
if (!event.isCancelled()) {
payForCommand(event, player, pre, price);
}
@ -352,14 +334,12 @@ public class boosCoolDownListener<a> implements Listener {
}
}
public void payForCommand(PlayerCommandPreprocessEvent event,
private void payForCommand(PlayerCommandPreprocessEvent event,
Player player, String pre, int price) {
String name = player.getName();
if (price > 0) {
if (!player.hasPermission(
"booscooldowns.noprice")
&& !player.hasPermission(
"booscooldowns.noprice." + pre)) {
if (!player.hasPermission("booscooldowns.noprice")
&& !player.hasPermission("booscooldowns.noprice." + pre)) {
if (boosPriceManager.payForCommand(player, pre, price, name)) {
return;
} else {
@ -370,15 +350,13 @@ public class boosCoolDownListener<a> implements Listener {
}
}
}
public void payForCommand2(AsyncPlayerChatEvent event,
Player player, String pre, int price) {
private void payForCommand2(AsyncPlayerChatEvent event, Player player,
String pre, int price) {
String name = player.getName();
if (price > 0) {
if (!player.hasPermission(
"booscooldowns.noprice")
&& !player.hasPermission(
"booscooldowns.noprice." + pre)) {
if (!player.hasPermission("booscooldowns.noprice")
&& !player.hasPermission("booscooldowns.noprice." + pre)) {
if (boosPriceManager.payForCommand(player, pre, price, name)) {
return;
} else {
@ -414,7 +392,7 @@ public class boosCoolDownListener<a> implements Listener {
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerMove(PlayerMoveEvent event) {
private void onPlayerMove(PlayerMoveEvent event) {
if (!boosConfigManager.getCancelWarmupOnMove())
return;
@ -422,20 +400,19 @@ public class boosCoolDownListener<a> implements Listener {
return;
Player player = event.getPlayer();
if (player != null
&& !player.hasPermission(
"booscooldowns.nocancel.move")) {
if (boosWarmUpManager.hasWarmUps(player) && hasMoved(player)) {
clearLocWorld(player);
boosChat.sendMessageToPlayer(player,
boosConfigManager.getWarmUpCancelledByMoveMessage());
boosWarmUpManager.cancelWarmUps(player);
}
if (player != null
&& !player.hasPermission("booscooldowns.nocancel.move")) {
if (boosWarmUpManager.hasWarmUps(player) && hasMoved(player)) {
clearLocWorld(player);
boosChat.sendMessageToPlayer(player,
boosConfigManager.getWarmUpCancelledByMoveMessage());
boosWarmUpManager.cancelWarmUps(player);
}
}
}
public static boolean hasMoved(Player player) {
private static boolean hasMoved(Player player) {
String curworld = player.getWorld().getName();
String cmdworld = playerworld.get(player);
Location curloc = player.getLocation();
@ -455,7 +432,7 @@ public class boosCoolDownListener<a> implements Listener {
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerToggleSneak(PlayerToggleSneakEvent event) {
private void onPlayerToggleSneak(PlayerToggleSneakEvent event) {
if (!boosConfigManager.getCancelWarmupOnSneak())
return;
@ -463,20 +440,19 @@ public class boosCoolDownListener<a> implements Listener {
return;
Player player = event.getPlayer();
if (player != null
&& !player.hasPermission(
"booscooldowns.nocancel.sneak")) {
if (boosWarmUpManager.hasWarmUps(player)) {
boosChat.sendMessageToPlayer(player,
boosConfigManager.getCancelWarmupOnSneakMessage());
boosWarmUpManager.cancelWarmUps(player);
}
if (player != null
&& !player.hasPermission("booscooldowns.nocancel.sneak")) {
if (boosWarmUpManager.hasWarmUps(player)) {
boosChat.sendMessageToPlayer(player,
boosConfigManager.getCancelWarmupOnSneakMessage());
boosWarmUpManager.cancelWarmUps(player);
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerToggleSprint(PlayerToggleSprintEvent event) {
private void onPlayerToggleSprint(PlayerToggleSprintEvent event) {
if (!boosConfigManager.getCancelWarmupOnSprint())
return;
@ -484,20 +460,19 @@ public class boosCoolDownListener<a> implements Listener {
return;
Player player = event.getPlayer();
if (player != null
&& !player.hasPermission(
"booscooldowns.nocancel.sprint")) {
if (boosWarmUpManager.hasWarmUps(player)) {
boosChat.sendMessageToPlayer(player,
boosConfigManager.getCancelWarmupOnSprintMessage());
boosWarmUpManager.cancelWarmUps(player);
}
if (player != null
&& !player.hasPermission("booscooldowns.nocancel.sprint")) {
if (boosWarmUpManager.hasWarmUps(player)) {
boosChat.sendMessageToPlayer(player,
boosConfigManager.getCancelWarmupOnSprintMessage());
boosWarmUpManager.cancelWarmUps(player);
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onEntityDamage(EntityDamageEvent event) {
private void onEntityDamage(EntityDamageEvent event) {
if (!boosConfigManager.getCancelWarmUpOnDamage())
return;
@ -507,21 +482,20 @@ public class boosCoolDownListener<a> implements Listener {
Entity entity = event.getEntity();
if (entity != null && entity instanceof Player) {
Player player = (Player) entity;
if (player != null
&& !player.hasPermission(
"booscooldowns.nocancel.damage")) {
if (boosWarmUpManager.hasWarmUps(player)) {
boosChat.sendMessageToPlayer(player, boosConfigManager
.getWarmUpCancelledByDamageMessage());
boosWarmUpManager.cancelWarmUps(player);
}
if (player != null
&& !player.hasPermission("booscooldowns.nocancel.damage")) {
if (boosWarmUpManager.hasWarmUps(player)) {
boosChat.sendMessageToPlayer(player, boosConfigManager
.getWarmUpCancelledByDamageMessage());
boosWarmUpManager.cancelWarmUps(player);
}
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerInteract(PlayerInteractEvent event) {
private void onPlayerInteract(PlayerInteractEvent event) {
if (!boosConfigManager.getBlockInteractDuringWarmup())
return;
@ -531,45 +505,44 @@ public class boosCoolDownListener<a> implements Listener {
Entity entity = event.getPlayer();
if (entity != null && entity instanceof Player) {
Player player = (Player) entity;
if (player != null
&& !player.hasPermission(
"booscooldowns.dontblock.interact")) {
if (boosWarmUpManager.hasWarmUps(player)) {
if (event.getClickedBlock().getType().name()
.equals("CHEST")
|| event.getClickedBlock().getType().name()
.equals("FURNACE")
|| event.getClickedBlock().getType().name()
.equals("BURNING_FURNACE")
|| event.getClickedBlock().getType().name()
.equals("WORKBENCH")
|| event.getClickedBlock().getType().name()
.equals("DISPENSER")
|| event.getClickedBlock().getType().name()
.equals("JUKEBOX")
|| event.getClickedBlock().getType().name()
.equals("LOCKED_CHEST")
|| event.getClickedBlock().getType().name()
.equals("ENCHANTMENT_TABLE")
|| event.getClickedBlock().getType().name()
.equals("BREWING_STAND")
|| event.getClickedBlock().getType().name()
.equals("CAULDRON")
|| event.getClickedBlock().getType().name()
.equals("STORAGE_MINECART")) {
event.setCancelled(true);
boosChat.sendMessageToPlayer(player,
boosConfigManager
.getInteractBlockedMessage());
}
if (player != null
&& !player
.hasPermission("booscooldowns.dontblock.interact")) {
if (boosWarmUpManager.hasWarmUps(player)) {
if (event.getClickedBlock().getType().name()
.equals("CHEST")
|| event.getClickedBlock().getType().name()
.equals("FURNACE")
|| event.getClickedBlock().getType().name()
.equals("BURNING_FURNACE")
|| event.getClickedBlock().getType().name()
.equals("WORKBENCH")
|| event.getClickedBlock().getType().name()
.equals("DISPENSER")
|| event.getClickedBlock().getType().name()
.equals("JUKEBOX")
|| event.getClickedBlock().getType().name()
.equals("LOCKED_CHEST")
|| event.getClickedBlock().getType().name()
.equals("ENCHANTMENT_TABLE")
|| event.getClickedBlock().getType().name()
.equals("BREWING_STAND")
|| event.getClickedBlock().getType().name()
.equals("CAULDRON")
|| event.getClickedBlock().getType().name()
.equals("STORAGE_MINECART")) {
event.setCancelled(true);
boosChat.sendMessageToPlayer(player,
boosConfigManager.getInteractBlockedMessage());
}
}
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerGameModeChange(PlayerGameModeChangeEvent event) {
private void onPlayerGameModeChange(PlayerGameModeChangeEvent event) {
if (!boosConfigManager.getCancelWarmUpOnGameModeChange())
return;
@ -579,55 +552,53 @@ public class boosCoolDownListener<a> implements Listener {
Entity entity = event.getPlayer();
if (entity != null && entity instanceof Player) {
Player player = (Player) entity;
if (player != null
&& !player.hasPermission(
"booscooldowns.nocancel.gamemodechange")) {
if (boosWarmUpManager.hasWarmUps(player)) {
boosChat.sendMessageToPlayer(player, boosConfigManager
.getCancelWarmupByGameModeChangeMessage());
boosWarmUpManager.cancelWarmUps(player);
}
if (player != null
&& !player
.hasPermission("booscooldowns.nocancel.gamemodechange")) {
if (boosWarmUpManager.hasWarmUps(player)) {
boosChat.sendMessageToPlayer(player, boosConfigManager
.getCancelWarmupByGameModeChangeMessage());
boosWarmUpManager.cancelWarmUps(player);
}
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerDeath(PlayerDeathEvent event) {
private void onPlayerDeath(PlayerDeathEvent event) {
if (!boosConfigManager.getCleanCooldownsOnDeath()
&& !boosConfigManager.getCleanUsesOnDeath())
return;
Entity entity = event.getEntity();
if (entity != null && entity instanceof Player) {
Player player = (Player) entity;
if (player != null
&& player.hasPermission(
"booscooldowns.clear.cooldowns.death")) {
if (boosConfigManager.getCleanCooldownsOnDeath()) {
boosCoolDownManager.clearSomething("cooldown", player
.getName().toLowerCase());
}
if (player != null
&& player
.hasPermission("booscooldowns.clear.cooldowns.death")) {
if (boosConfigManager.getCleanCooldownsOnDeath()) {
boosCoolDownManager.clearSomething("cooldown", player
.getName().toLowerCase());
}
if (player != null
&& player.hasPermission(
"booscooldowns.clear.uses.death")) {
if (boosConfigManager.getCleanUsesOnDeath()) {
boosCoolDownManager.clearSomething("uses", player
.getName().toLowerCase());
}
}
if (player != null
&& player.hasPermission("booscooldowns.clear.uses.death")) {
if (boosConfigManager.getCleanUsesOnDeath()) {
boosCoolDownManager.clearSomething("uses", player.getName()
.toLowerCase());
}
}
}
}
@EventHandler(priority = EventPriority.LOW)
public void onPlayerChat(AsyncPlayerChatEvent event) {
private void onPlayerChat(AsyncPlayerChatEvent event) {
String chatMessage = event.getMessage();
String temp = "globalchat";
int price = 0;
Player player = event.getPlayer();
if (chatMessage.startsWith("!")) {
if (!boosCoolDownManager.checkCoolDownOK(player, temp,
chatMessage)) {
if (!boosCoolDownManager.checkCoolDownOK(player, temp, chatMessage)) {
event.setCancelled(true);
return;
} else {
@ -636,8 +607,88 @@ public class boosCoolDownListener<a> implements Listener {
return;
}
}
price = prePriceCheck(player, temp);
payForCommand2(event, player, temp, price);
price = prePriceCheck(player, temp);
payForCommand2(event, player, temp, price);
}
}
@EventHandler(priority = EventPriority.NORMAL)
private void onSignInteract(PlayerInteractEvent event) {
String msg;
if (!boosConfigManager.getSignCommands()) {
return;
}
if (event.isCancelled()) {
return;
}
if (event.hasBlock() && event.getAction() == Action.RIGHT_CLICK_BLOCK) {
if (event.getClickedBlock().getType() == Material.SIGN_POST
|| event.getClickedBlock().getType() == Material.WALL_SIGN) {
Sign s = (Sign) event.getClickedBlock().getState();
String line1 = s.getLine(0);
String line2 = s.getLine(1);
String line3 = s.getLine(2);
String line4 = s.getLine(3);
Player player = event.getPlayer();
if (line1.equals("[boosCooldowns]")) {
if (line2.equals("player")
&& player
.hasPermission("booscooldowns.signs.player.use")) {
msg = line3;
if (line3.endsWith("+") || !line4.isEmpty()) {
msg = line3.substring(0, line3.length() - 1) + " "
+ line4;
}
event.getPlayer().chat(msg);
} else if (line2.equals("server")
&& player
.hasPermission("booscooldowns.signs.server.use")) {
msg = line3;
if (line3.endsWith("+") || !line4.isEmpty()) {
msg = line3.substring(0, line3.length() - 1) + " "
+ line4;
}
plugin.getServer().dispatchCommand(
plugin.getServer().getConsoleSender(), msg);
} else {
boosChat.sendMessageToPlayer(player, boosConfigManager
.getCannotUseSignMessage());
}
}
}
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onSignChange(SignChangeEvent event) {
if (!boosConfigManager.getSignCommands()) {
return;
}
if (event.isCancelled()) {
return;
}
Player player = event.getPlayer();
String line1 = event.getLine(0);
String line2 = event.getLine(1);
if (line1.equals("[boosCooldowns]")) {
if (line2.equals("player")
&& !player
.hasPermission("booscooldowns.signs.player.place")) {
boosChat.sendMessageToPlayer(player, boosConfigManager
.getCannotCreateSignMessage());
event.getBlock().breakNaturally();
event.setCancelled(true);
return;
}
if (line2.equals("server")
&& !player
.hasPermission("booscooldowns.signs.server.place")) {
boosChat.sendMessageToPlayer(player, boosConfigManager
.getCannotCreateSignMessage());
event.getBlock().breakNaturally();
event.setCancelled(true);
return;
}
}
}
}

View File

@ -1,6 +1,6 @@
name: boosCooldowns
main: cz.boosik.boosCooldown.boosCoolDown
version: 3.0.2
version: 3.1.0
authors: [LordBoos (ingame name boosik)]
softdepend: [Vault]
description: >
@ -77,7 +77,7 @@ permissions:
default: false
booscooldowns.reload:
description: Player can use "/booscooldowns reload" to reload config file.
default: false
default: op
booscooldowns.clear.uses.death:
description: Players uses (limit-uses=how many times playr can still use command) are cleared on death (must be enabled in config file too!).
default: false
@ -89,4 +89,16 @@ permissions:
default: true
booscooldowns.set:
description: Users with this can use "/booscooldowns set" command.
default: op
booscooldowns.signs.player.use:
description: Player can use boosCooldowns signs (marked as player on second line).
default: false
booscooldowns.signs.server.use:
description: Player can use boosCooldowns signs (marked as server on second line).
default: false
booscooldowns.signs.player.place:
description: Player can place/create boosCooldowns signs (marked as player on second line).
default: false
booscooldowns.signs.server.place:
description: Player can place/create boosCooldowns signs (marked as server on second line). !!WARNING!! With this permission, player can create sign with commands that are run as if used from console!
default: false