Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.astra0815.cuthelper;
- import com.sk89q.worldedit.BlockVector;
- import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
- import com.sk89q.worldguard.domains.DefaultDomain;
- import com.sk89q.worldguard.protection.ApplicableRegionSet;
- import com.sk89q.worldguard.protection.managers.RegionManager;
- import com.sk89q.worldguard.protection.regions.ProtectedRegion;
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.logging.Logger;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.Server;
- import org.bukkit.World;
- import org.bukkit.block.Block;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.configuration.file.FileConfigurationOptions;
- import org.bukkit.entity.Player;
- import org.bukkit.event.HandlerList;
- import org.bukkit.plugin.Plugin;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- public final class Cuthelper extends JavaPlugin
- {
- public void loadConfiguration()
- {
- getConfig().addDefault("mysql.database", "database");
- getConfig().addDefault("mysql.user", "user");
- getConfig().addDefault("mysql.password", "password");
- getConfig().addDefault("mysql.dsn", "jdbc:mysql://localhost:3306/");
- getConfig().options().copyDefaults(true);
- saveConfig();
- }
- public void onEnable()
- {
- getLogger().info("Cuthelper loaded and ready");
- loadConfiguration();
- }
- public void onDisable()
- {
- getLogger().info("onDisable has been invoked!");
- HandlerList.unregisterAll(this);
- }
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
- {
- if (cmd.getName().equalsIgnoreCase("cutme"))
- {
- if (args.length == 0)
- {
- sender.sendMessage("Willkommen im Cuthelper!");
- sender.sendMessage("----------------------------");
- sender.sendMessage("/cutme info");
- sender.sendMessage("/cutme tp <GSName>");
- sender.sendMessage("/cutme clean");
- return true;
- }
- if (!(sender instanceof Player))
- {
- sender.sendMessage("This command can only be run by a player.");
- }
- else
- {
- Player player = (Player)sender;
- String command = args[0];
- if (command.equalsIgnoreCase("info"))
- {
- if ((player.isOp()) || (player.hasPermission("cutme.info"))) {
- World currentWorld = player.getWorld();
- LinkedList regions = myregion(player);
- if (regions.isEmpty()) {
- sender.sendMessage(ChatColor.GREEN + "Hier ist kein Grundstück, du kannst dir keine Infos anzeigen.");
- }
- else
- {
- ProtectedRegion myRegion = getRegionIfExists(currentWorld, regions.getFirst().toString());
- sender.sendMessage(ChatColor.GREEN + "Grundstücksname: " + regions.getFirst().toString());
- sender.sendMessage(ChatColor.GREEN + "Eigentümer: " + myRegion.getOwners().toPlayersString());
- player.chat("/seen " + myRegion.getOwners().toPlayersString());
- }
- }
- else
- {
- sender.sendMessage(ChatColor.RED + "Du darfst diesen Befehl nicht ausführen!");
- }
- return true;
- }
- if (command.equalsIgnoreCase("tp"))
- {
- if ((player.isOp()) || (player.hasPermission("cutme.cantp")))
- {
- World currentWorld = player.getWorld();
- ProtectedRegion myRegion = getRegionIfExists(currentWorld, args[1]);
- if (myRegion == null) {
- sender.sendMessage(ChatColor.RED + "Das Grundstück existiert in dieser Welt nicht !");
- }
- else
- {
- Location loc = new Location(currentWorld, myRegion.getMaximumPoint().getX() + 1.0D, 65.0D, myRegion.getMaximumPoint().getZ() + 1.0D);
- player.teleport(loc);
- }
- } else {
- sender.sendMessage(ChatColor.RED + "Du darfst diesen Befehl nicht ausführen!");
- }
- return true;
- }
- if (command.equalsIgnoreCase("clean"))
- {
- if ((player.isOp()) || (player.hasPermission("cutme.canclean"))) {
- World currentWorld = player.getWorld();
- LinkedList regions = myregion(player);
- if (regions.isEmpty()) {
- sender.sendMessage(ChatColor.GREEN + "Hier ist kein Grundstück, du kannst dir keine Infos anzeigen.");
- }
- else
- {
- ProtectedRegion myRegion = getRegionIfExists(currentWorld, regions.getFirst().toString());
- if (myRegion.getPriority() >= 0) {
- for (int x = myRegion.getMinimumPoint().getBlockX(); x <= myRegion.getMaximumPoint().getBlockX(); x++) {
- for (int z = myRegion.getMinimumPoint().getBlockZ(); z <= myRegion.getMaximumPoint().getBlockZ(); z++) {
- for (int y = 1; y <= 255; y++)
- {
- Block block = player.getWorld().getBlockAt(x, y, z);
- if (block.getType() == Material.CHEST) {
- block.setType(Material.STONE);
- }
- if (block.getType() == Material.FURNACE) {
- block.setType(Material.STONE);
- }
- if (block.getType() == Material.HOPPER) {
- block.setType(Material.STONE);
- }
- if ((y >= 65) && (block.getType() != Material.AIR))
- block.setType(Material.AIR);
- else if ((y <= 64) && (y >= 55))
- block.setType(Material.GRASS);
- else if ((y < 64) && (block.getType() != Material.STONE)) {
- block.setType(Material.STONE);
- }
- }
- }
- }
- for (int x = myRegion.getMinimumPoint().getBlockX(); x <= myRegion.getMinimumPoint().getBlockX() + 4; x++) {
- Block block = player.getWorld().getBlockAt(x + 6, 65, myRegion.getMinimumPoint().getBlockZ() + 3);
- block.setType(Material.SAND);
- }
- Block block = player.getWorld().getBlockAt(myRegion.getMinimumPoint().getBlockX() + 8, 65, myRegion.getMinimumPoint().getBlockZ() + 4);
- block.setType(Material.SAND);
- block = player.getWorld().getBlockAt(myRegion.getMinimumPoint().getBlockX() + 10, 65, myRegion.getMinimumPoint().getBlockZ() + 4);
- block.setType(Material.SAND);
- block = player.getWorld().getBlockAt(myRegion.getMinimumPoint().getBlockX() + 10, 65, myRegion.getMinimumPoint().getBlockZ() + 5);
- block.setType(Material.SAND);
- int x = myRegion.getMaximumPoint().getBlockX() - myRegion.getMinimumPoint().getBlockX();
- int z = myRegion.getMaximumPoint().getBlockZ() - myRegion.getMinimumPoint().getBlockZ();
- x /= 2;
- z /= 2;
- block = player.getWorld().getBlockAt(myRegion.getMinimumPoint().getBlockX() + x, 64, myRegion.getMinimumPoint().getBlockZ() + z);
- block.setType(Material.BRICK);
- player.chat("//rg select " + regions.getFirst().toString());
- player.chat("//rg set owner");
- player.chat("/remove drops 100");
- }
- else {
- sender.sendMessage(ChatColor.RED + "Die Region resette ich nicht :p");
- }
- sender.sendMessage(ChatColor.GREEN + "Grundstück resetet");
- }
- } else {
- sender.sendMessage(ChatColor.RED + "Du darfst diesen Befehl nicht ausführen!");
- }
- return true;
- }
- sender.sendMessage("Den Befehl verstehe ich nicht.");
- }
- }
- return false;
- }
- private WorldGuardPlugin getWorldGuard() {
- Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard");
- getLogger().info("plugins loaded: " + getServer().getPluginManager().getPlugins().length);
- if ((plugin == null) || (!(plugin instanceof WorldGuardPlugin))) {
- getLogger().info("Couldn't load world guard plugin...");
- return null;
- }
- return (WorldGuardPlugin)plugin;
- }
- private LinkedList myregion(Player player)
- {
- World currentWorld = player.getWorld();
- RegionManager regionManager = getRegionManager(currentWorld);
- ApplicableRegionSet set = regionManager.getApplicableRegions(player.getLocation());
- LinkedList parentNames = new LinkedList();
- LinkedList regions = new LinkedList();
- ProtectedRegion parent;
- for (Iterator localIterator = set.iterator(); localIterator.hasNext();
- parent != null)
- {
- ProtectedRegion region = (ProtectedRegion)localIterator.next();
- String id = region.getId();
- regions.add(id);
- parent = region.getParent();
- continue;
- parentNames.add(parent.getId());
- parent = parent.getParent();
- }
- return regions;
- }
- private RegionManager getRegionManager(World world) {
- return getWorldGuard().getRegionManager(world);
- }
- private ProtectedRegion getRegionIfExists(World world, String regionName) {
- RegionManager regionManager = getRegionManager(world);
- return regionManager.getRegion(regionName);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement