diff --git a/Metropolis/Plugin.jardesc b/Metropolis/Plugin.jardesc index 99cc6f8..4339f0c 100644 --- a/Metropolis/Plugin.jardesc +++ b/Metropolis/Plugin.jardesc @@ -1,6 +1,6 @@ - + diff --git a/Metropolis/README.txt b/Metropolis/README.txt index e484b08..374c3f8 100644 --- a/Metropolis/README.txt +++ b/Metropolis/README.txt @@ -12,9 +12,11 @@ INSTALL: To install just drop the jar into your plugins folder. All necessarry data will be created on first launch. CONFIG: -There are no configuration options currently, eventually block size, road width, road height and space above the road will be configurable. +Edit the config.yml file. You can set the height to clear above roads, the road width, the plot size (incluing half the road width on either side), the road material, and the level at which the road is generated. Changelog: +v0.3 + Added command to generate a home for a user that is not currently logged in. v0.2.1 Made config file save on load and disable. v0.2 diff --git a/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/MetropolisPlugin.java b/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/MetropolisPlugin.java index e67ed9d..5ac6b98 100644 --- a/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/MetropolisPlugin.java +++ b/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/MetropolisPlugin.java @@ -14,6 +14,7 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; +import com.majinnaibu.bukkit.plugins.metropolis.commands.MetropolisHomeGenerateCommand; import com.sk89q.worldedit.BlockVector; import com.sk89q.worldedit.bukkit.WorldEditPlugin; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; @@ -112,6 +113,8 @@ public class MetropolisPlugin extends JavaPlugin { saveConfig(); + getCommand("metropolis-home-generate").setExecutor(new MetropolisHomeGenerateCommand(this)); + /* Setstrings = config.getKeys(true); @@ -147,25 +150,13 @@ public class MetropolisPlugin extends JavaPlugin { PlayerHome getPlayerHome(Player player) { PlayerHome home = null; - home = new PlayerHome(); String regionName = "h_" + player.getName(); ProtectedRegion homeRegion = regionManager.getRegion(regionName); - Cuboid plotCuboid = null; - Cuboid homeCuboid = null; log.info(homeRegion == null? "null" : homeRegion.toString()); if(homeRegion == null){ - plotCuboid = findNextUnownedHomeRegion(); - homeCuboid = plotCuboid.inset(roadWidth/2, roadWidth/2); - homeRegion = new ProtectedCuboidRegion(regionName, homeCuboid.getMin(), homeCuboid.getMax()); - DefaultDomain d = homeRegion.getOwners(); - d.addPlayer(player.getName()); - //TODO: set flags for chest protection - homeRegion.setPriority(1); - regionManager.addRegion(homeRegion); - - createRoads(plotCuboid); + home = generateHome(player.getName()); } return home; @@ -183,7 +174,6 @@ public class MetropolisPlugin extends JavaPlugin { /**/ private void createRoads(Cuboid plotCuboid) { - log.info("createRoads"); if(roadWidth>0){ int x=0; int y= roadLevel; @@ -194,7 +184,6 @@ public class MetropolisPlugin extends JavaPlugin { return; } - log.info("road1"); for(x=plotCuboid.minX; x{ // TODO Auto-generated constructor stub } - public PlayerHome(ProtectedCuboidRegion region){ - if(region.getId().startsWith("h_") && region.getId().length() > 2){ - this.playerName = region.getId().substring(2); - }else{ - this.playerName = region.getId(); + public PlayerHome(ProtectedRegion homeRegion){ + if(homeRegion instanceof ProtectedCuboidRegion){ + ProtectedCuboidRegion cuboidRegion = (ProtectedCuboidRegion) homeRegion; + if(cuboidRegion.getId().startsWith("h_") && cuboidRegion.getId().length() > 2){ + this.playerName = cuboidRegion.getId().substring(2); + }else{ + this.playerName = cuboidRegion.getId(); + } + + this.cuboid = new Cuboid(cuboidRegion.getMinimumPoint(), cuboidRegion.getMaximumPoint()); + }else if(homeRegion instanceof ProtectedPolygonalRegion){ + ProtectedPolygonalRegion polygonalRegion = (ProtectedPolygonalRegion)homeRegion; + if(polygonalRegion.getId().startsWith("h_") && polygonalRegion.getId().length() > 2){ + this.playerName = polygonalRegion.getId().substring(2); + }else{ + this.playerName = polygonalRegion.getId(); + } + + this.cuboid = new Cuboid(polygonalRegion.getMinimumPoint(), polygonalRegion.getMaximumPoint()); } - - this.cuboid = new Cuboid(region.getMinimumPoint(), region.getMaximumPoint()); } public int getId(){return this.id;} diff --git a/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/commands/MetropolisCommand.java b/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/commands/MetropolisCommand.java new file mode 100644 index 0000000..13568ad --- /dev/null +++ b/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/commands/MetropolisCommand.java @@ -0,0 +1,5 @@ +package com.majinnaibu.bukkit.plugins.metropolis.commands; + +public class MetropolisCommand { + +} diff --git a/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/commands/MetropolisHomeGenerateCommand.java b/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/commands/MetropolisHomeGenerateCommand.java new file mode 100644 index 0000000..ffbc6cd --- /dev/null +++ b/Metropolis/src/com/majinnaibu/bukkit/plugins/metropolis/commands/MetropolisHomeGenerateCommand.java @@ -0,0 +1,42 @@ +package com.majinnaibu.bukkit.plugins.metropolis.commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.majinnaibu.bukkit.plugins.metropolis.MetropolisPlugin; + +public class MetropolisHomeGenerateCommand implements CommandExecutor { + + private MetropolisPlugin _plugin; + + public MetropolisHomeGenerateCommand(MetropolisPlugin plugin){ + _plugin = plugin; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + Player player = null; + if(sender instanceof Player){ + player = (Player)sender; + } + + if(player != null){ + if(player.hasPermission("metropolis.generate")){ + return false; + } + } + + if(args.length < 1){ + return false; + } + + _plugin.generateHome(args[0]); + + sender.sendMessage("[Metropolis] Home generated for " + args[0]); + + return true; + } + +} diff --git a/Metropolis/src/plugin.yml b/Metropolis/src/plugin.yml index 301d411..238071b 100644 --- a/Metropolis/src/plugin.yml +++ b/Metropolis/src/plugin.yml @@ -1,6 +1,10 @@ name: Metropolis main: com.majinnaibu.bukkit.plugins.metropolis.MetropolisPlugin depend: [WorldEdit, WorldGuard] -version: 0.2.1 -database: true - +version: 0.3 +database: false +commands: + metropolis-home-generate: + description: This command generates a home for a user as if they'd just logged in. + permission: metropolis.generate + usage: /metropolis-home-generate