Compare commits

...
8 Commits
9 changed files with 88 additions and 31 deletions

No files matched your search

+6
View File
@@ -1,3 +1,9 @@
2.2:
- Now supports GroupUsers.
- Added support for blocking creeper explosions.
- Fixed a bug where a player's groups were not being loaded correctly,
causing the blacklist group ignore option to not work.
2.1.1:
- Fixed fire spread disable preventing flint and steel too.
- Fixed NullPointerException related to the player item event.
+4 -14
View File
@@ -2,23 +2,13 @@ WorldGuard
Copyright (c) 2010, 2011 sk89q <http://www.sk89q.com>
Licensed under the GNU Lesser General Public License v3
Installation
Introduction
------------
Bukkit:
WorldGuard protects your server!
** Make sure you first install the WorldEdit plugin. **
1. Create a "plugins" folder inside your server folder.
2. Copy WorldGuard.jar into "plugins".
3. Restart your server.
Default configuration files will be created in plugins/WorldGuard/
when WorldGuard is first started. Be sure to edit them and use
/reload WorldGuard until you are satisfied (remember to remove the
/reload permission from everyone when you are done).
Documentation can be found at:
http://wiki.sk89q.com/wiki/WorldGuard
Thanks
------
+2 -1
View File
@@ -32,8 +32,9 @@
<attribute name="WorldGuard-Version" value="${version}"/>
<attribute name="Class-Path" value="WorldEdit.jar WorldGuard/WorldEdit.jar"/>
</manifest>
<replace file="${build.dir}/plugin.yml" token="WGVERSIONMACRO" value="${version}"/>
<delete file="${build.dir}/plugin.yml"/>
<copy tofile="${build.dir}/plugin.yml" file="plugin.yml"/>
<replace file="${build.dir}/plugin.yml" token="WGVERSIONMACRO" value="${version}"/>
<mkdir dir="${build.dir}/defaults"/>
<copy tofile="${build.dir}/defaults/config.yml" file="config.yml"/>
<copy tofile="${build.dir}/defaults/blacklist.txt" file="blacklist.txt"/>
+2 -6
View File
@@ -49,6 +49,7 @@ fire:
mobs:
block-creeper-explosions: off
block-creeper-block-damage: off
spawn:
login-protection: 3
@@ -84,12 +85,7 @@ blacklist:
path: worldguard/logs/%Y-%m-%d.log
open-files: 10
# Change sk89q to your name (or sk89q will be able to change regions
# on your server!). Check the documentation to see how to configure this
#
# NOTE: The /reload permission is given to everyone below (only applies to
# WorldGuard) so that you can reload WorldGuard with /reload WorldGuard
# until your configuration work is done
# See http://wiki.sk89q.com/wiki/WorldGuard/Permissions/Bukkit
permissions:
groups:
default:
+1 -1
View File
@@ -71,7 +71,7 @@ public abstract class LocalPlayer {
*
* @return
*/
public abstract List<String> getGroups();
public abstract String[] getGroups();
@Override
public boolean equals(Object obj) {
@@ -19,7 +19,6 @@
package com.sk89q.worldguard.bukkit;
import java.util.List;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import com.sk89q.worldedit.Vector;
@@ -61,7 +60,7 @@ public class BukkitPlayer extends LocalPlayer {
}
@Override
public List<String> getGroups() {
public String[] getGroups() {
return plugin.getGroups(player);
}
@@ -21,6 +21,7 @@ package com.sk89q.worldguard.bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.*;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
@@ -110,4 +111,28 @@ public class WorldGuardEntityListener extends EntityListener {
}
}
}
@Override
public void onEntityExplode(EntityExplodeEvent event) {
if (event.getEntity() instanceof LivingEntity) {
if (plugin.blockCreeperBlockDamage) {
event.setCancelled(true);
return;
}
if (plugin.blockCreeperExplosions) {
event.setCancelled(true);
return;
}
if (plugin.useRegions) {
Vector pt = toVector(event.getEntity().getLocation());
if (!plugin.regionManager.getApplicableRegions(pt).allowsCreeperExplosions()) {
event.setCancelled(true);
return;
}
}
}
}
}
@@ -24,9 +24,7 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -39,7 +37,8 @@ import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginLoader;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.util.config.Configuration;
import com.sk89q.bukkit.migration.ConfigurationPermissionsResolver;
import com.sk89q.bukkit.migration.PermissionsResolverManager;
import com.sk89q.bukkit.migration.PermissionsResolverServerListener;
import com.sk89q.worldguard.blacklist.Blacklist;
import com.sk89q.worldguard.blacklist.BlacklistLogger;
import com.sk89q.worldguard.blacklist.loggers.*;
@@ -59,7 +58,9 @@ public class WorldGuardPlugin extends JavaPlugin {
new WorldGuardBlockListener(this);
private final WorldGuardEntityListener entityListener =
new WorldGuardEntityListener(this);
private final ConfigurationPermissionsResolver perms;
private final PermissionsResolverServerListener permsListener;
private final PermissionsResolverManager perms;
Blacklist blacklist;
@@ -93,6 +94,7 @@ public class WorldGuardPlugin extends JavaPlugin {
Set<Integer> allowedLavaSpreadOver;
boolean blockCreeperExplosions;
boolean blockCreeperBlockDamage;
int loginProtection;
int spawnProtection;
@@ -122,7 +124,9 @@ public class WorldGuardPlugin extends JavaPlugin {
createDefaultConfiguration("blacklist.txt");
regionLoader = new CSVDatabase(new File(folder, "regions.txt"));
perms = new ConfigurationPermissionsResolver(getConfiguration());
perms = new PermissionsResolverManager(getConfiguration(), getServer(),
"WorldGuard", logger);
permsListener = new PermissionsResolverServerListener(perms);
loadConfiguration();
postReload();
registerEvents();
@@ -145,12 +149,15 @@ public class WorldGuardPlugin extends JavaPlugin {
registerEvent(Event.Type.ENTITY_DAMAGEDBY_BLOCK, entityListener, Priority.Normal);
registerEvent(Event.Type.ENTITY_DAMAGEDBY_ENTITY, entityListener, Priority.Normal);
registerEvent(Event.Type.ENTITY_EXPLODE, entityListener, Priority.Normal);
registerEvent(Event.Type.PLAYER_COMMAND, playerListener, Priority.Normal);
registerEvent(Event.Type.PLAYER_ITEM, playerListener, Priority.Normal);
registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal);
registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal);
registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal);
permsListener.register(this);
}
private void registerEvent(Event.Type type, Listener listener, Priority priority) {
@@ -221,6 +228,7 @@ public class WorldGuardPlugin extends JavaPlugin {
allowedLavaSpreadOver = new HashSet<Integer>(config.getIntList("fire.lava-spread-blocks", null));
blockCreeperExplosions = config.getBoolean("mobs.block-creeper-explosions", false);
blockCreeperBlockDamage = config.getBoolean("mobs.block-creeper-block-damage", false);
loginProtection = config.getInt("spawn.login-protection", 3);
spawnProtection = config.getInt("spawn.spawn-protection", 0);
@@ -359,8 +367,8 @@ public class WorldGuardPlugin extends JavaPlugin {
return perms.hasPermission(player.getName(), perm);
}
List<String> getGroups(Player player) {
return new ArrayList<String>();
String[] getGroups(Player player) {
return perms.getGroups(player.getName());
}
BukkitPlayer wrapPlayer(Player player) {
@@ -19,8 +19,10 @@
package com.sk89q.worldguard;
import java.util.List;
import java.util.Set;
import java.util.HashSet;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldguard.LocalPlayer;
public class TestPlayer extends LocalPlayer {
@@ -44,4 +46,34 @@ public class TestPlayer extends LocalPlayer {
public boolean hasGroup(String group) {
return groups.contains(group.toLowerCase());
}
@Override
public Vector getPosition() {
// TODO Auto-generated method stub
return null;
}
@Override
public void kick(String msg) {
// TODO Auto-generated method stub
}
@Override
public void ban(String msg) {
// TODO Auto-generated method stub
}
@Override
public void printRaw(String msg) {
// TODO Auto-generated method stub
}
@Override
public List<String> getGroups() {
// TODO Auto-generated method stub
return null;
}
}