mirror of
https://github.com/EssentialsX/Essentials.git
synced 2025-02-03 14:01:37 +01:00
Merge branch 'master' into release
This commit is contained in:
commit
db5974970d
@ -5,7 +5,6 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class BukkitPermissionsHandler implements IPermissionsHandler
|
||||
{
|
||||
|
||||
public String getGroup(Player base)
|
||||
{
|
||||
return "default";
|
||||
@ -23,6 +22,20 @@ public class BukkitPermissionsHandler implements IPermissionsHandler
|
||||
|
||||
public boolean hasPermission(Player base, String node)
|
||||
{
|
||||
if (base.hasPermission("-" + node))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
final String[] parts = node.split("\\.");
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
for (String part : parts)
|
||||
{
|
||||
if (base.hasPermission(sb.toString() + "*"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
sb.append(part).append(".");
|
||||
}
|
||||
return base.hasPermission(node);
|
||||
}
|
||||
|
||||
@ -35,5 +48,4 @@ public class BukkitPermissionsHandler implements IPermissionsHandler
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -177,10 +177,7 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
pm.registerEvent(Type.PLAYER_QUIT, playerListener, Priority.Monitor, this);
|
||||
pm.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this);
|
||||
if (getSettings().getNetherPortalsEnabled())
|
||||
{
|
||||
pm.registerEvent(Type.PLAYER_MOVE, playerListener, Priority.High, this);
|
||||
}
|
||||
pm.registerEvent(Type.PLAYER_LOGIN, playerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_TELEPORT, playerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.High, this);
|
||||
@ -320,15 +317,27 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
m = m.replace("{IP}", user.getAddress().toString());
|
||||
m = m.replace("{BALANCE}", Double.toString(user.getMoney()));
|
||||
m = m.replace("{MAILS}", Integer.toString(user.getMails().size()));
|
||||
m = m.replace("{WORLD}", user.getLocation().getWorld().getName());
|
||||
}
|
||||
|
||||
m = m.replace("{ONLINE}", Integer.toString(getServer().getOnlinePlayers().length));
|
||||
int playerHidden = 0;
|
||||
for (Player p : getServer().getOnlinePlayers())
|
||||
{
|
||||
if (getUser(p).isHidden())
|
||||
{
|
||||
playerHidden++;
|
||||
}
|
||||
}
|
||||
m = m.replace("{ONLINE}", Integer.toString(getServer().getOnlinePlayers().length - playerHidden));
|
||||
|
||||
if (m.matches(".*\\{PLAYERLIST\\}.*"))
|
||||
{
|
||||
StringBuilder online = new StringBuilder();
|
||||
for (Player p : getServer().getOnlinePlayers())
|
||||
{
|
||||
if (getUser(p).isHidden())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (online.length() > 0)
|
||||
{
|
||||
online.append(", ");
|
||||
@ -563,6 +572,12 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
|
||||
public User getOfflineUser(String name)
|
||||
{
|
||||
// Don't create a new offline user, if we already have that user loaded.
|
||||
User u = users.get(name.toLowerCase());
|
||||
if (u != null)
|
||||
{
|
||||
return u;
|
||||
}
|
||||
File userFolder = new File(getDataFolder(), "userdata");
|
||||
File userFile = new File(userFolder, Util.sanitizeFileName(name) + ".yml");
|
||||
if (userFile.exists())
|
||||
|
@ -100,9 +100,9 @@ public final class InventoryWorkaround
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < items.length; i++)
|
||||
for (int i = 0; i < combined.length; i++)
|
||||
{
|
||||
final ItemStack item = items[i];
|
||||
final ItemStack item = combined[i];
|
||||
while (true)
|
||||
{
|
||||
// Do we already have a stack of it?
|
||||
|
@ -8,6 +8,7 @@ import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
@ -131,7 +132,7 @@ public class Trade
|
||||
}
|
||||
private static FileWriter fw = null;
|
||||
|
||||
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, IEssentials ess)
|
||||
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, Location loc, IEssentials ess)
|
||||
{
|
||||
if (!ess.getSettings().isEcoLogEnabled())
|
||||
{
|
||||
@ -149,7 +150,7 @@ public class Trade
|
||||
}
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(type).append(",").append(subtype).append(",").append("event").append(",\"");
|
||||
sb.append(type).append(",").append(subtype).append(",").append(event).append(",\"");
|
||||
sb.append(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date()));
|
||||
sb.append("\",\"");
|
||||
if (sender != null)
|
||||
@ -201,6 +202,18 @@ public class Trade
|
||||
sb.append(ess.getSettings().getCurrencySymbol());
|
||||
}
|
||||
}
|
||||
if (loc == null)
|
||||
{
|
||||
sb.append(",\"\",\"\",\"\",\"\"");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.append(",\"");
|
||||
sb.append(loc.getWorld().getName()).append("\",");
|
||||
sb.append(loc.getBlockX()).append(",");
|
||||
sb.append(loc.getBlockY()).append(",");
|
||||
sb.append(loc.getBlockZ()).append(",");
|
||||
}
|
||||
sb.append("\n");
|
||||
try
|
||||
{
|
||||
|
@ -19,6 +19,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
private boolean teleportRequestHere;
|
||||
private final Teleport teleport;
|
||||
private long lastActivity;
|
||||
private boolean hidden = false;
|
||||
|
||||
User(Player base, IEssentials ess)
|
||||
{
|
||||
@ -250,10 +251,6 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
|
||||
nickname.insert(0, prefix);
|
||||
nickname.append(suffix);
|
||||
if (suffix.length() > 1 && suffix.substring(suffix.length() - 2, suffix.length() - 1).equals("§"))
|
||||
{
|
||||
nickname.append("§f");
|
||||
}
|
||||
|
||||
return nickname.toString();
|
||||
}
|
||||
@ -331,4 +328,14 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
this.setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : now);
|
||||
return now;
|
||||
}
|
||||
|
||||
public boolean isHidden()
|
||||
{
|
||||
return hidden;
|
||||
}
|
||||
|
||||
public void setHidden(boolean hidden)
|
||||
{
|
||||
this.hidden = hidden;
|
||||
}
|
||||
}
|
||||
|
@ -60,6 +60,7 @@ public final class Economy
|
||||
{
|
||||
logger.log(Level.WARNING, Util.format("deleteFileError", config));
|
||||
}
|
||||
ess.getAllUsers().remove(name.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -43,6 +43,10 @@ public class Commandgod extends EssentialsCommand
|
||||
for (Player p : server.matchPlayer(name))
|
||||
{
|
||||
User u = ess.getUser(p);
|
||||
if (u.isHidden())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
boolean enabled = u.toggleGodModeEnabled();
|
||||
u.sendMessage(Util.format("godMode", (enabled ? Util.i18n("enabled") : Util.i18n("disabled"))));
|
||||
sender.sendMessage(Util.format("godMode",Util.format(enabled ? "godEnabledFor": "godDisabledFor", p.getDisplayName())));
|
||||
|
@ -53,13 +53,17 @@ public class Commandheal extends EssentialsCommand
|
||||
private void healOtherPlayers(Server server, CommandSender sender, String name)
|
||||
{
|
||||
List<Player> players = server.matchPlayer(name);
|
||||
if(players.isEmpty())
|
||||
if (players.isEmpty())
|
||||
{
|
||||
sender.sendMessage(Util.i18n("playerNotFound"));
|
||||
return;
|
||||
}
|
||||
for (Player p : players)
|
||||
{
|
||||
if (ess.getUser(p).isHidden())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
p.setHealth(20);
|
||||
sender.sendMessage(Util.format("healOther", p.getDisplayName()));
|
||||
}
|
||||
|
@ -24,9 +24,33 @@ public class Commandlist extends EssentialsCommand
|
||||
@Override
|
||||
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
|
||||
{
|
||||
boolean showhidden = false;
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
if (ess.getUser(sender).isAuthorized("essentials.list.hidden"))
|
||||
{
|
||||
showhidden = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
showhidden = true;
|
||||
}
|
||||
int playerHidden = 0;
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
if (ess.getUser(p).isHidden())
|
||||
{
|
||||
playerHidden++;
|
||||
}
|
||||
}
|
||||
charge(sender);
|
||||
StringBuilder online = new StringBuilder();
|
||||
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length);
|
||||
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length - playerHidden);
|
||||
if (showhidden && playerHidden > 0)
|
||||
{
|
||||
online.append(ChatColor.GRAY).append("/").append(playerHidden);
|
||||
}
|
||||
online.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED).append(server.getMaxPlayers());
|
||||
online.append(ChatColor.BLUE).append(" players online.");
|
||||
sender.sendMessage(online.toString());
|
||||
@ -37,6 +61,10 @@ public class Commandlist extends EssentialsCommand
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
User u = ess.getUser(p);
|
||||
if (u.isHidden() && !showhidden)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
String group = u.getGroup();
|
||||
List<User> list = sort.get(group);
|
||||
if (list == null)
|
||||
@ -69,6 +97,10 @@ public class Commandlist extends EssentialsCommand
|
||||
{
|
||||
groupString.append("§7[AFK]§f");
|
||||
}
|
||||
if (user.isHidden())
|
||||
{
|
||||
groupString.append("§7[HIDDEN]§f");
|
||||
}
|
||||
groupString.append(user.getDisplayName());
|
||||
}
|
||||
sender.sendMessage(groupString.toString());
|
||||
@ -79,7 +111,12 @@ public class Commandlist extends EssentialsCommand
|
||||
List<User> users = new ArrayList<User>();
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
users.add(ess.getUser(p));
|
||||
final User u = ess.getUser(p);
|
||||
if (u.isHidden() && !showhidden)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
users.add(u);
|
||||
}
|
||||
Collections.sort(users);
|
||||
|
||||
@ -100,6 +137,10 @@ public class Commandlist extends EssentialsCommand
|
||||
{
|
||||
onlineUsers.append("§7[AFK]§f");
|
||||
}
|
||||
if (user.isHidden())
|
||||
{
|
||||
onlineUsers.append("§7[HIDDEN]§f");
|
||||
}
|
||||
onlineUsers.append(user.getDisplayName());
|
||||
}
|
||||
sender.sendMessage(onlineUsers.toString());
|
||||
|
@ -5,6 +5,7 @@ import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
import com.earth2me.essentials.Console;
|
||||
import com.earth2me.essentials.IReplyTo;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
@ -52,7 +53,8 @@ public class Commandmsg extends EssentialsCommand
|
||||
for (Player p : matches)
|
||||
{
|
||||
sender.sendMessage(Util.format("msgFormat", translatedMe, p.getDisplayName(), message));
|
||||
if (sender instanceof Player && ess.getUser(p).isIgnoredPlayer(((Player)sender).getName()))
|
||||
final User u = ess.getUser(p);
|
||||
if (sender instanceof Player && (u.isIgnoredPlayer(((Player)sender).getName()) || u.isHidden()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@ -25,6 +25,10 @@ public class Commandpay extends EssentialsCommand
|
||||
for (Player p : server.matchPlayer(args[0]))
|
||||
{
|
||||
User u = ess.getUser(p);
|
||||
if (u.isHidden())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
user.payUser(u, amount);
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,10 @@ public class Commandrealname extends EssentialsCommand
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
final User u = ess.getUser(p);
|
||||
if (u.isHidden())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
final String displayName = ChatColor.stripColor(u.getDisplayName()).toLowerCase();
|
||||
if (!whois.equals(displayName)
|
||||
&& !displayName.equals(ChatColor.stripColor(ess.getSettings().getNicknamePrefix()) + whois)
|
||||
|
@ -153,7 +153,7 @@ public class Commandsell extends EssentialsCommand
|
||||
final ItemStack ris = new ItemStack(is.getType(), amount, is.getDurability());
|
||||
InventoryWorkaround.removeItem(user.getInventory(), true, ris);
|
||||
user.updateInventory();
|
||||
Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth*amount, ess), ess);
|
||||
Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth*amount, ess), user.getLocation(), ess);
|
||||
user.giveMoney(worth * amount);
|
||||
user.sendMessage(Util.format("itemSold", Util.formatCurrency(worth * amount, ess), amount, Util.formatCurrency(worth, ess)));
|
||||
logger.log(Level.INFO, Util.format("itemSoldConsole", user.getDisplayName(), is.getType().toString().toLowerCase(), Util.formatCurrency(worth * amount, ess), amount, Util.formatCurrency(worth, ess)));
|
||||
|
@ -106,6 +106,7 @@ public class Commandtime extends EssentialsCommand
|
||||
if ("reset".equalsIgnoreCase(timeString))
|
||||
{
|
||||
user.resetPlayerTime();
|
||||
return;
|
||||
}
|
||||
throw new Exception(Util.i18n("onlyDayNight"));
|
||||
}
|
||||
|
@ -28,6 +28,10 @@ public class Commandwhois extends EssentialsCommand
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
User u = ess.getUser(p);
|
||||
if (u.isHidden())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
String dn = ChatColor.stripColor(u.getNick());
|
||||
if (!whois.equalsIgnoreCase(dn)
|
||||
&& !whois.equalsIgnoreCase(dn.substring(prefixLength))
|
||||
|
@ -53,12 +53,18 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||
|
||||
for (Player p : matches)
|
||||
{
|
||||
if (p.getDisplayName().startsWith(args[pos]))
|
||||
final User u = ess.getUser(p);
|
||||
if (u.getDisplayName().startsWith(args[pos]) && (getOffline || !u.isHidden()))
|
||||
{
|
||||
return ess.getUser(p);
|
||||
return u;
|
||||
}
|
||||
}
|
||||
return ess.getUser(matches.get(0));
|
||||
final User u = ess.getUser(matches.get(0));
|
||||
if (!getOffline && u.isHidden())
|
||||
{
|
||||
throw new NoSuchFieldException(Util.i18n("playerNotFound"));
|
||||
}
|
||||
return u;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -29,7 +29,7 @@ public class SignBuy extends EssentialsSign
|
||||
charge.isAffordableFor(player);
|
||||
items.pay(player);
|
||||
charge.charge(player);
|
||||
Trade.log("Sign", "Buy", "Interact", username, charge, username, items, ess);
|
||||
Trade.log("Sign", "Buy", "Interact", username, charge, username, items, sign.getBlock().getLocation(), ess);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ public class SignFree extends EssentialsSign
|
||||
inv.clear();
|
||||
InventoryWorkaround.addItem(inv, true, item);
|
||||
player.showInventory(inv);
|
||||
Trade.log("Sign", "Free", "Interact", username, null, username, new Trade(item, ess), ess);
|
||||
Trade.log("Sign", "Free", "Interact", username, null, username, new Trade(item, ess), sign.getBlock().getLocation(), ess);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ public class SignSell extends EssentialsSign
|
||||
charge.isAffordableFor(player);
|
||||
money.pay(player);
|
||||
charge.charge(player);
|
||||
Trade.log("Sign", "Sell", "Interact", username, charge, username, money, ess);
|
||||
Trade.log("Sign", "Sell", "Interact", username, charge, username, money, sign.getBlock().getLocation(), ess);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public class SignTrade extends EssentialsSign
|
||||
charge.isAffordableFor(player);
|
||||
sign.setLine(3, "§8" + username);
|
||||
charge.charge(player);
|
||||
Trade.log("Sign", "Trade", "Create", username, charge, username, null, ess);
|
||||
Trade.log("Sign", "Trade", "Create", username, charge, username, null, sign.getBlock().getLocation(), ess);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ public class SignTrade extends EssentialsSign
|
||||
final Trade stored = getTrade(sign, 1, true, true, ess);
|
||||
substractAmount(sign, 1, stored, ess);
|
||||
stored.pay(player);
|
||||
Trade.log("Sign", "Trade", "OwnerInteract", username, null, username, stored, ess);
|
||||
Trade.log("Sign", "Trade", "OwnerInteract", username, null, username, stored, sign.getBlock().getLocation(), ess);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -47,7 +47,7 @@ public class SignTrade extends EssentialsSign
|
||||
trade.pay(player);
|
||||
addAmount(sign, 1, charge, ess);
|
||||
charge.charge(player);
|
||||
Trade.log("Sign", "Trade", "Interact", sign.getLine(3), charge, username, trade, ess);
|
||||
Trade.log("Sign", "Trade", "Interact", sign.getLine(3), charge, username, trade, sign.getBlock().getLocation(), ess);
|
||||
}
|
||||
sign.updateSign();
|
||||
return true;
|
||||
@ -63,7 +63,7 @@ public class SignTrade extends EssentialsSign
|
||||
final Trade stored2 = getTrade(sign, 2, true, false, ess);
|
||||
stored1.pay(player);
|
||||
stored2.pay(player);
|
||||
Trade.log("Sign", "Trade", "Break", username, stored2, username, stored1, ess);
|
||||
Trade.log("Sign", "Trade", "Break", username, stored2, username, stored1, sign.getBlock().getLocation(), ess);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
@ -125,31 +125,41 @@ player-commands:
|
||||
- balance
|
||||
- clearinventory
|
||||
- compass
|
||||
- depth
|
||||
- getpos
|
||||
- help
|
||||
- helpop
|
||||
- home
|
||||
- home.others
|
||||
- ignore
|
||||
- info
|
||||
- kit
|
||||
- list
|
||||
- mail
|
||||
- mail.send
|
||||
- me
|
||||
- motd
|
||||
- msg
|
||||
- nick
|
||||
- pay
|
||||
- ping
|
||||
- powertool
|
||||
- r
|
||||
- rules
|
||||
- seen
|
||||
- sell
|
||||
- sethome
|
||||
- setxmpp
|
||||
- spawn
|
||||
- suicide
|
||||
- tpa
|
||||
- tpaccept
|
||||
- tpahere
|
||||
- tpdeny
|
||||
- warp
|
||||
- world
|
||||
- worth
|
||||
- xmpp
|
||||
|
||||
# Note: All items MUST be followed by a quantity!
|
||||
# Times are measured in seconds.
|
||||
@ -332,7 +342,10 @@ protect:
|
||||
lightning-fire-spread: true
|
||||
portal-creation: false
|
||||
tnt-explosion: false
|
||||
tnt-playerdamage: false
|
||||
fireball-explosion: false
|
||||
fireball-fire: false
|
||||
fireball-playerdamage: false
|
||||
creeper-explosion: false
|
||||
creeper-playerdamage: false
|
||||
creeper-blockdamage: false
|
||||
|
@ -215,8 +215,8 @@ playerInJail = \u00a7cPlayer is already in jail {0}.
|
||||
playerJailed = \u00a77Player {0} jailed.
|
||||
playerJailedFor = \u00a77Player {0} jailed for {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked: {1}
|
||||
playerMuted = "\u00a77You have been muted"
|
||||
playerMutedFor = "\u00a77You have been muted for {0}"
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cPlayer {0} was never on this server.
|
||||
playerNotFound = \u00a7cPlayer not found.
|
||||
playerUnmuted = "\u00a77You have been unmuted"
|
||||
|
@ -217,8 +217,8 @@ playerInJail = \u00a7cSpiller er allerede i f\u00e6ngsel {0}.
|
||||
playerJailed = \u00a77Spiller {0} f\u00e6ngslet.
|
||||
playerJailedFor = \u00a77Spiller {0} f\u00e6ngslet for {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked: {1}
|
||||
playerMuted = "\u00a77You have been muted"
|
||||
playerMutedFor = "\u00a77You have been muted for {0}"
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cSpiller {0} var aldrig p\u00e5 denne server.
|
||||
playerNotFound = \u00a7cSpiller ikke fundet.
|
||||
playerUnmuted = "\u00a77You have been unmuted"
|
||||
|
@ -215,8 +215,8 @@ playerInJail = \u00a7cSpieler ist bereits in Gef\u00e4ngnis {0}.
|
||||
playerJailed = \u00a77Spieler {0} eingesperrt.
|
||||
playerJailedFor = \u00a77Spieler {0} eingesperrt f\u00fcr {1}.
|
||||
playerKicked = \u00a7cSpieler {0} rausgeworfen: {1}
|
||||
playerMuted = "\u00a77You have been muted"
|
||||
playerMutedFor = "\u00a77You have been muted for {0}"
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cSpieler {0} war niemals auf diesem Server.
|
||||
playerNotFound = \u00a7cSpieler nicht gefunden.
|
||||
playerUnmuted = "\u00a77You have been unmuted"
|
||||
|
@ -215,8 +215,8 @@ playerInJail = \u00a7cPlayer is already in jail {0}.
|
||||
playerJailed = \u00a77Player {0} jailed.
|
||||
playerJailedFor = \u00a77Player {0} jailed for {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked: {1}
|
||||
playerMuted = "\u00a77You have been muted"
|
||||
playerMutedFor = "\u00a77You have been muted for {0}"
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cPlayer {0} was never on this server.
|
||||
playerNotFound = \u00a7cPlayer not found.
|
||||
playerUnmuted = "\u00a77You have been unmuted"
|
||||
|
@ -215,8 +215,8 @@ playerInJail = \u00a7cLe joueur est d\u00e9j\u00e0 dans la prison {0}.
|
||||
playerJailed = \u00a77Le joueur {0} a \u00e9t\u00e9 emprisonn\u00e9.
|
||||
playerJailedFor = \u00a77{0} a \u00e9t\u00e9 emprisonn\u00e9 pour {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked: {1}
|
||||
playerMuted = "\u00a77You have been muted"
|
||||
playerMutedFor = "\u00a77You have been muted for {0}"
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cLe joueur {0} n''a jamais \u00e9t\u00e9 sur le serveur.
|
||||
playerNotFound = \u00a7cLe joueur est introuvable.
|
||||
playerUnmuted = "\u00a77You have been unmuted"
|
||||
|
@ -216,8 +216,8 @@ playerInJail = \u00a7cSpeler zit al in de gevangenis {0}.
|
||||
playerJailed = \u00a77Speler {0} is in de gevangenis gezet.
|
||||
playerJailedFor = \u00a77Speler {0} is in de gevangenis gezet voor {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked: {1}
|
||||
playerMuted = "\u00a77You have been muted"
|
||||
playerMutedFor = "\u00a77You have been muted for {0}"
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cSpeler {0} is nooit op deze server geweest.
|
||||
playerNotFound = \u00a7cSpeler niet gevonden.
|
||||
playerUnmuted = "\u00a77You have been unmuted"
|
||||
|
@ -53,6 +53,7 @@ public class EssentialsProtect extends JavaPlugin implements IConf, IProtect
|
||||
pm.registerEvent(Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this);
|
||||
pm.registerEvent(Type.CREATURE_SPAWN, entityListener, Priority.Highest, this);
|
||||
pm.registerEvent(Type.ENTITY_TARGET, entityListener, Priority.Highest, this);
|
||||
pm.registerEvent(Type.EXPLOSION_PRIME, entityListener, Priority.Highest, this);
|
||||
|
||||
final EssentialsProtectWeatherListener weatherListener = new EssentialsProtectWeatherListener(this);
|
||||
pm.registerEvent(Type.LIGHTNING_STRIKE, weatherListener, Priority.Highest, this);
|
||||
|
@ -18,8 +18,10 @@ import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.entity.CraftTNTPrimed;
|
||||
import org.bukkit.entity.Creeper;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Fireball;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.TNTPrimed;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByBlockEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
@ -30,6 +32,7 @@ import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.event.entity.EntityTargetEvent.TargetReason;
|
||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
||||
|
||||
|
||||
public class EssentialsProtectEntityListener extends EntityListener
|
||||
@ -118,6 +121,24 @@ public class EssentialsProtectEntityListener extends EntityListener
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (eAttack instanceof Fireball && prot.getSettingBool(ProtectConfig.prevent_fireball_playerdmg)
|
||||
&& !(target instanceof Player
|
||||
&& user.isAuthorized("essentials.protect.damage.fireball")
|
||||
&& !user.isAuthorized("essentials.protect.damage.disable")))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (eAttack instanceof TNTPrimed && prot.getSettingBool(ProtectConfig.prevent_tnt_playerdmg)
|
||||
&& !(target instanceof Player
|
||||
&& user.isAuthorized("essentials.protect.damage.tnt")
|
||||
&& !user.isAuthorized("essentials.protect.damage.disable")))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (event instanceof EntityDamageByProjectileEvent
|
||||
@ -314,4 +335,14 @@ public class EssentialsProtectEntityListener extends EntityListener
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExplosionPrime(ExplosionPrimeEvent event)
|
||||
{
|
||||
if (event.getEntity() instanceof CraftFireball
|
||||
&& prot.getSettingBool(ProtectConfig.prevent_fireball_fire))
|
||||
{
|
||||
event.setFire(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,10 @@ public enum ProtectConfig
|
||||
prevent_portal_creation("protect.prevent.portal-creation", false),
|
||||
prevent_block_on_rail("protect.protect.prevent-block-on-rails", false),
|
||||
prevent_tnt_explosion("protect.prevent.tnt-explosion", false),
|
||||
prevent_tnt_playerdmg("protect.prevent.tnt-playerdamage", false),
|
||||
prevent_fireball_explosion("protect.prevent.fireball-explosion", false),
|
||||
prevent_fireball_fire("protect.prevent.fireball-fire", false),
|
||||
prevent_fireball_playerdmg("protect.prevent.fireball-playerdamage", false),
|
||||
prevent_creeper_explosion("protect.prevent.creeper-explosion", true),
|
||||
prevent_creeper_playerdmg("protect.prevent.creeper-playerdamage", false),
|
||||
prevent_creeper_blockdmg("protect.prevent.creeper-blockdamage", false),
|
||||
|
Loading…
Reference in New Issue
Block a user