base region general working
This commit is contained in:
parent
414a02f77c
commit
cf9449aae5
6 changed files with 43 additions and 16 deletions
5
TODO.txt
Normal file
5
TODO.txt
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
- Region-Config? Where are the missing options?
|
||||||
|
- Region: permanent gamemode storage? (safemode, if not permanent: region!) maybe only if regionsset empty?
|
||||||
|
- remove config.yml and plugin.yml
|
||||||
|
- cleanup localize-messages
|
||||||
|
- rework german localization
|
|
@ -82,7 +82,7 @@ public class FeatureSwitchGameMode extends CoreModule<LimitedCreative> {
|
||||||
|
|
||||||
GameMode wgm = Hooks.DefaultWorldGameMode.get(target.getWorld());
|
GameMode wgm = Hooks.DefaultWorldGameMode.get(target.getWorld());
|
||||||
|
|
||||||
if (!context.checkPermission(permission) && !(wgm != tgm || !context.checkPermission(SwitchGameModePermissions.BACKONLY)))
|
if (!context.checkPermission(permission) && (wgm != tgm || !context.checkPermission(SwitchGameModePermissions.BACKONLY)))
|
||||||
throw new MissingPermissionCommandException(permission);
|
throw new MissingPermissionCommandException(permission);
|
||||||
|
|
||||||
target.setGameMode(tgm);
|
target.setGameMode(tgm);
|
||||||
|
|
|
@ -8,12 +8,16 @@ import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||||
|
|
||||||
import de.jaschastarke.bukkit.lib.CoreModule;
|
import de.jaschastarke.bukkit.lib.CoreModule;
|
||||||
import de.jaschastarke.bukkit.lib.commands.AliasHelpedCommand;
|
import de.jaschastarke.bukkit.lib.commands.AliasHelpedCommand;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.regions.BlockListener;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.Flags;
|
import de.jaschastarke.minecraft.limitedcreative.regions.Flags;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.PlayerData;
|
import de.jaschastarke.minecraft.limitedcreative.regions.PlayerData;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.regions.PlayerListener;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.RegionConfig;
|
import de.jaschastarke.minecraft.limitedcreative.regions.RegionConfig;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.regions.RegionListener;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.RegionsCommand;
|
import de.jaschastarke.minecraft.limitedcreative.regions.RegionsCommand;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.CustomRegionManager;
|
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.CustomRegionManager;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.FlagList;
|
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.FlagList;
|
||||||
|
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.PlayerRegionListener;
|
||||||
import de.jaschastarke.modularize.IModule;
|
import de.jaschastarke.modularize.IModule;
|
||||||
import de.jaschastarke.modularize.ModuleEntry;
|
import de.jaschastarke.modularize.ModuleEntry;
|
||||||
import de.jaschastarke.modularize.ModuleEntry.ModuleState;
|
import de.jaschastarke.modularize.ModuleEntry.ModuleState;
|
||||||
|
@ -42,7 +46,12 @@ public class ModRegions extends CoreModule<LimitedCreative> {
|
||||||
|
|
||||||
command = new RegionsCommand(this);
|
command = new RegionsCommand(this);
|
||||||
plugin.getCommandHandler().registerCommand(command);
|
plugin.getCommandHandler().registerCommand(command);
|
||||||
plugin.getMainCommand().registerCommand(new AliasHelpedCommand<RegionsCommand>(command, "region"));
|
plugin.getMainCommand().registerCommand(new AliasHelpedCommand<RegionsCommand>(command, "region", new String[]{"r"}));
|
||||||
|
|
||||||
|
listeners.registerEvents(new PlayerListener(this));
|
||||||
|
listeners.registerEvents(new BlockListener(this));
|
||||||
|
listeners.registerEvents(new RegionListener(this));
|
||||||
|
listeners.registerEvents(new PlayerRegionListener(this));
|
||||||
|
|
||||||
FlagList.addFlags(Flags.getList());
|
FlagList.addFlags(Flags.getList());
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
|
||||||
|
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||||
import com.sk89q.worldguard.protection.flags.Flag;
|
import com.sk89q.worldguard.protection.flags.Flag;
|
||||||
import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
|
import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
|
||||||
import com.sk89q.worldguard.protection.managers.RegionManager;
|
import com.sk89q.worldguard.protection.managers.RegionManager;
|
||||||
|
@ -147,12 +148,14 @@ public class RegionsCommand extends BukkitCommand implements IHelpDescribed {
|
||||||
public boolean getInfo(CommandContext context, String... args) throws CommandException {
|
public boolean getInfo(CommandContext context, String... args) throws CommandException {
|
||||||
DefinedParameterParser params = new DefinedParameterParser(args, new String[]{"s"}, 1);
|
DefinedParameterParser params = new DefinedParameterParser(args, new String[]{"s"}, 1);
|
||||||
|
|
||||||
/*
|
if (context.isPlayer()) {
|
||||||
* WorldEdits intercepting Servers privates commandMap via Reflections realy sucks!
|
/*
|
||||||
* Just because they are to lazy to add all the lines commands to plugin.yml
|
* WorldEdits intercepting Servers privates commandMap via Reflections realy sucks!
|
||||||
*/
|
* Just because they are to lazy to add all the lines commands to plugin.yml
|
||||||
String orgCmd = ("region info " + StringUtils.join(args)).trim();
|
*/
|
||||||
mod.getPlugin().getServer().dispatchCommand(context.getSender(), orgCmd);
|
String orgCmd = ("region info " + StringUtils.join(args)).trim();
|
||||||
|
mod.getPlugin().getServer().dispatchCommand(context.getSender(), orgCmd);
|
||||||
|
}
|
||||||
|
|
||||||
World w = context.isPlayer() ? context.getPlayer().getWorld() : null;
|
World w = context.isPlayer() ? context.getPlayer().getWorld() : null;
|
||||||
if (params.getArgumentCount() > 1)
|
if (params.getArgumentCount() > 1)
|
||||||
|
@ -160,12 +163,21 @@ public class RegionsCommand extends BukkitCommand implements IHelpDescribed {
|
||||||
if (w == null)
|
if (w == null)
|
||||||
throw new CommandException(L("command.worldguard.world_not_found"));
|
throw new CommandException(L("command.worldguard.world_not_found"));
|
||||||
|
|
||||||
int rpc = params.getArgumentCount() > 1 ? 2 : 1;
|
ProtectedRegion region = null;
|
||||||
RegionManager mgr = mod.getWorldGuard().getGlobalRegionManager().get(w);
|
if (params.getArgumentCount() == 0 && context.isPlayer()) {
|
||||||
ProtectedRegion region = mgr.getRegion(params.getArgument(rpc));
|
RegionManager mgr = mod.getWorldGuard().getGlobalRegionManager().get(context.getPlayer().getWorld());
|
||||||
if (region == null && params.getArgument(rpc).equalsIgnoreCase("__global__")) {
|
ApplicableRegionSet set = mgr.getApplicableRegions(context.getPlayer().getLocation());
|
||||||
region = new GlobalProtectedRegion(params.getArgument(rpc));
|
if (set.size() > 0) {
|
||||||
mgr.addRegion(region);
|
region = set.iterator().next();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int rpc = params.getArgumentCount() > 1 ? 1 : 0;
|
||||||
|
RegionManager mgr = mod.getWorldGuard().getGlobalRegionManager().get(w);
|
||||||
|
region = mgr.getRegion(params.getArgument(rpc));
|
||||||
|
if (region == null && params.getArgument(rpc).equalsIgnoreCase("__global__")) {
|
||||||
|
region = new GlobalProtectedRegion(params.getArgument(rpc));
|
||||||
|
mgr.addRegion(region);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (region == null)
|
if (region == null)
|
||||||
throw new CommandException(L("command.worldguard.region_not_found"));
|
throw new CommandException(L("command.worldguard.region_not_found"));
|
||||||
|
|
|
@ -32,10 +32,10 @@ import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.events.Playe
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.events.PlayerNewLocationAreaEvent;
|
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.events.PlayerNewLocationAreaEvent;
|
||||||
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.events.PlayerSetAreaEvent;
|
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.events.PlayerSetAreaEvent;
|
||||||
|
|
||||||
public class PlayerListener implements Listener {
|
public class PlayerRegionListener implements Listener {
|
||||||
private ModRegions mod;
|
private ModRegions mod;
|
||||||
|
|
||||||
public PlayerListener(ModRegions mod) {
|
public PlayerRegionListener(ModRegions mod) {
|
||||||
this.mod = mod;
|
this.mod = mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +50,7 @@ public class PlayerListener implements Listener {
|
||||||
|| !event.getFrom().getWorld().equals(event.getTo().getWorld())) { // he really moved, and not just looked around
|
|| !event.getFrom().getWorld().equals(event.getTo().getWorld())) { // he really moved, and not just looked around
|
||||||
|
|
||||||
String current_hash = mod.getPlayerData(event.getPlayer()).getHash();
|
String current_hash = mod.getPlayerData(event.getPlayer()).getHash();
|
||||||
|
mod.getLog().debug(event.getPlayer().getName()+" "+current_hash);
|
||||||
if (current_hash == null) {
|
if (current_hash == null) {
|
||||||
String new_hash = mod.getRegionManager().getRegionsHash(event.getTo());
|
String new_hash = mod.getRegionManager().getRegionsHash(event.getTo());
|
||||||
Bukkit.getServer().getPluginManager().callEvent(new PlayerSetAreaEvent(mod.getRegionManager(), event.getPlayer(), new_hash, event.getTo()));
|
Bukkit.getServer().getPluginManager().callEvent(new PlayerSetAreaEvent(mod.getRegionManager(), event.getPlayer(), new_hash, event.getTo()));
|
Loading…
Reference in a new issue