Quote Regex Characters when Distorting Chat

Untestet GriefPrevention Support
This commit is contained in:
Sn0wStorm 2014-05-06 20:45:40 +02:00
parent c7a4a36699
commit c4a0a8dbbe
5 changed files with 105 additions and 41 deletions

26
pom.xml
View File

@ -85,15 +85,6 @@
</snapshots>
</repository>
<repository>
<id>sacredlabyrinth-repo</id>
<url>http://repo.sacredlabyrinth.net:8081/artifactory/repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>junction-repo</id>
<url>http://junction.at/repo/</url>
@ -107,6 +98,15 @@
<id>mcstats-repo</id>
<url>http://repo.mcstats.org/content/repositories/public</url>
</repository>
<repository>
<id>sacredlabyrinth-repo</id>
<url>http://repo.sacredlabyrinth.net:8081/artifactory/repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<dependencies>
@ -142,6 +142,14 @@
<type>jar</type>
</dependency>
<dependency>
<groupId>me.ryanhamshire</groupId>
<artifactId>griefprevention</artifactId>
<version>7.8</version>
<scope>compile</scope>
<type>jar</type>
</dependency>
<dependency>
<groupId>de.diddiz</groupId>
<artifactId>logblock</artifactId>

View File

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

View File

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

View File

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

View File

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