diff --git a/pom.xml b/pom.xml
index dd76ead..758a6eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,15 +85,6 @@
-
- sacredlabyrinth-repo
- http://repo.sacredlabyrinth.net:8081/artifactory/repo/
-
- true
- always
-
-
-
junction-repo
http://junction.at/repo/
@@ -107,6 +98,15 @@
mcstats-repo
http://repo.mcstats.org/content/repositories/public
+
+
+ sacredlabyrinth-repo
+ http://repo.sacredlabyrinth.net:8081/artifactory/repo/
+
+ true
+ always
+
+
@@ -142,6 +142,14 @@
jar
+
+ me.ryanhamshire
+ griefprevention
+ 7.8
+ compile
+ jar
+
+
de.diddiz
logblock
diff --git a/src/com/dre/brewery/Barrel.java b/src/com/dre/brewery/Barrel.java
index 6ef54ef..749876e 100644
--- a/src/com/dre/brewery/Barrel.java
+++ b/src/com/dre/brewery/Barrel.java
@@ -15,6 +15,7 @@ import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.plugin.Plugin;
+import com.dre.brewery.integration.GriefPreventionBarrel;
import com.dre.brewery.integration.LWCBarrel;
import com.dre.brewery.integration.LogBlockBarrel;
import com.dre.brewery.integration.WGBarrel;
@@ -114,6 +115,11 @@ public class Barrel {
}
}
+ if (P.p.getServer().getPluginManager().isPluginEnabled("GriefPrevention")) {
+ if (!GriefPreventionBarrel.checkAccess(player, spigot)) {
+ return false;
+ }
+ }
if (event != null) {
plugin = P.p.getServer().getPluginManager().getPlugin("LWC");
diff --git a/src/com/dre/brewery/Words.java b/src/com/dre/brewery/Words.java
index 93428ce..aa7985a 100644
--- a/src/com/dre/brewery/Words.java
+++ b/src/com/dre/brewery/Words.java
@@ -227,14 +227,15 @@ public class Words {
words = words + " ";
}
// remove all "from" and split "words" there
- String[] splitted = words.split(from);
+ String[] splitted = words.split(java.util.regex.Pattern.quote(from));
+ int index = 0;
String part;
// if there are occurences of "from"
if (splitted.length > 1) {
// - 1 because dont add "to" to the end of last part
- for (int i = 0; i < splitted.length - 1; i++) {
- part = splitted[i];
+ while (index < splitted.length - 1) {
+ part = splitted[index];
// add current part of "words" to the output
newWords = newWords + part;
// check if the part ends with correct string
@@ -246,10 +247,10 @@ public class Words {
// add original
newWords = newWords + from;
}
+ index++;
}
-
// add the last part to finish the sentence
- part = splitted[splitted.length - 1];
+ part = splitted[index];
if (part.equals(" ")) {
// dont add the space to the end
return newWords;
@@ -297,4 +298,5 @@ public class Words {
}
}
}
+
}
\ No newline at end of file
diff --git a/src/com/dre/brewery/integration/GriefPreventionBarrel.java b/src/com/dre/brewery/integration/GriefPreventionBarrel.java
new file mode 100644
index 0000000..0f470f4
--- /dev/null
+++ b/src/com/dre/brewery/integration/GriefPreventionBarrel.java
@@ -0,0 +1,45 @@
+package com.dre.brewery.integration;
+
+
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+
+import com.dre.brewery.P;
+import me.ryanhamshire.GriefPrevention.Claim;
+import me.ryanhamshire.GriefPrevention.Configuration.WorldConfig;
+import me.ryanhamshire.GriefPrevention.GriefPrevention;
+import me.ryanhamshire.GriefPrevention.Messages;
+import me.ryanhamshire.GriefPrevention.PlayerData;
+import me.ryanhamshire.GriefPrevention.TextMode;
+
+public class GriefPreventionBarrel {
+
+ public static boolean checkAccess(Player player, Block sign) {
+
+ WorldConfig wc = GriefPrevention.instance.getWorldCfg(player.getWorld());
+ /*if (!wc.Enabled()) {
+ return true;
+ }*/
+
+ PlayerData playerData = GriefPrevention.instance.dataStore.getPlayerData(player.getName());
+
+ // block container use during pvp combat
+ if (playerData.inPvpCombat() && wc.getPvPBlockContainers()) {
+ GriefPrevention.sendMessage(player, TextMode.Err, Messages.PvPNoContainers);
+ return false;
+ }
+
+ // check permissions for the claim the Barrel is in
+ if (wc.getContainersRules().Allowed(sign.getLocation(), player, true).Denied()) {
+ P.p.msg(player, P.p.languageReader.get("Error_NoBarrelAccess"));
+ return false;
+ }
+
+ // drop any pvp protection, as the player opens a barrel
+ if (playerData.pvpImmune) {
+ playerData.pvpImmune = false;
+ GriefPrevention.sendMessage(player, TextMode.Warn, Messages.PvPImmunityEnd);
+ }
+ return true;
+ }
+}
diff --git a/src/com/dre/brewery/listeners/PlayerListener.java b/src/com/dre/brewery/listeners/PlayerListener.java
index 8711254..c560a3a 100644
--- a/src/com/dre/brewery/listeners/PlayerListener.java
+++ b/src/com/dre/brewery/listeners/PlayerListener.java
@@ -1,14 +1,7 @@
package com.dre.brewery.listeners;
import org.bukkit.entity.Player;
-import org.bukkit.event.player.PlayerInteractEvent;
-import org.bukkit.event.player.PlayerItemConsumeEvent;
-import org.bukkit.event.player.PlayerRespawnEvent;
-import org.bukkit.event.player.PlayerMoveEvent;
-import org.bukkit.event.player.AsyncPlayerChatEvent;
-import org.bukkit.event.player.PlayerCommandPreprocessEvent;
-import org.bukkit.event.player.PlayerLoginEvent;
-import org.bukkit.event.player.PlayerQuitEvent;
+import org.bukkit.event.player.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@@ -200,27 +193,29 @@ public class PlayerListener implements Listener {
}
// player joins while passed out
- @EventHandler(priority = EventPriority.LOW)
+ @EventHandler()
public void onPlayerLogin(PlayerLoginEvent event) {
- final Player player = event.getPlayer();
- BPlayer bplayer = BPlayer.get(player.getName());
- if (bplayer != null) {
- if (player.hasPermission("brewery.bypass.logindeny")) {
- if (bplayer.getDrunkeness() > 100) {
- bplayer.setData(100, 0);
+ if (event.getResult() == PlayerLoginEvent.Result.ALLOWED) {
+ final Player player = event.getPlayer();
+ BPlayer bplayer = BPlayer.get(player.getName());
+ if (bplayer != null) {
+ if (player.hasPermission("brewery.bypass.logindeny")) {
+ if (bplayer.getDrunkeness() > 100) {
+ bplayer.setData(100, 0);
+ }
+ bplayer.join(player);
+ return;
+ }
+ switch (bplayer.canJoin()) {
+ case 0:
+ bplayer.join(player);
+ return;
+ case 2:
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER, P.p.languageReader.get("Player_LoginDeny"));
+ return;
+ case 3:
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER, P.p.languageReader.get("Player_LoginDenyLong"));
}
- bplayer.join(player);
- return;
- }
- switch (bplayer.canJoin()) {
- case 0:
- bplayer.join(player);
- return;
- case 2:
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, P.p.languageReader.get("Player_LoginDeny"));
- return;
- case 3:
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, P.p.languageReader.get("Player_LoginDenyLong"));
}
}
}
@@ -232,4 +227,12 @@ public class PlayerListener implements Listener {
bplayer.disconnecting();
}
}
+
+ @EventHandler
+ public void onPlayerKick(PlayerKickEvent event) {
+ BPlayer bplayer = BPlayer.get(event.getPlayer().getName());
+ if (bplayer != null) {
+ bplayer.disconnecting();
+ }
+ }
}
\ No newline at end of file