All pastes #2066030 Raw Edit

Miscellany

public java v1 · immutable
#2066030 ·published 2011-05-20 22:41 UTC
rendered paste body
package signcopy;import org.bukkit.event.player.PlayerListener;import org.bukkit.event.block.Action;import org.bukkit.event.player.PlayerInteractEvent;import org.bukkit.Material;import org.bukkit.entity.Player;import org.bukkit.ChatColor;import org.bukkit.block.*;import org.bukkit.block.Sign;import org.bukkit.World;import org.bukkit.Location;import org.bukkit.plugin.*;import org.bukkit.material.MaterialData;import org.bukkit.material.*;import java.lang.*;public class SCPlayerListener extends PlayerListener {    Player player;    private SCProps props;    private final SignCopy plugin;    String[] directions;        public SCPlayerListener(SignCopy instance, SCProps props) {        plugin = instance;        this.props = props;    }        Plugin permissionsPlugin;    String[] lines;        MaterialData md;    public void onPlayerInteract(PlayerInteractEvent event) {        Location target = event.getPlayer().getLocation();        World world = target.getWorld();        directions = new String[16];        directions[0] = "West";        directions[1] = "West_North_West";        directions[2] = "North_West";        directions[3] = "North_North_West";        directions[4] = "North";        directions[5] = "North_North_East";        directions[6] = "North_East";        directions[7] = "East_North_East";        directions[8] = "East";        directions[9] = "East_South_East";        directions[10] = "South_East";        directions[11] = "South_South_East";        directions[12] = "South";        directions[13] = "South_South_West";        directions[14] = "South_West";        directions[15] = "West_South_West";        Sign sign;        permissionsPlugin = plugin.getServer().getPluginManager().getPlugin("Permissions");        if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {            if (event.getPlayer().getItemInHand().getTypeId() == props.tool) {                //if (plugin.permissionHandler.has(player, "sc.signcopy")) {                    if (SignCopy.selected.get(event.getPlayer().getName()+"_mode") == null) {                        final BlockState state = world.getBlockAt(new Location(world, event.getClickedBlock().getX(), event.getClickedBlock().getY(), event.getClickedBlock().getZ())).getState();                        if (state instanceof Sign) {                            sign = (Sign)state;                            SignCopy.selected.put(event.getPlayer().getName()+"_mode",1);                            SignCopy.selected.put(event.getPlayer().getName()+"_x",null);                            SignCopy.selected.put(event.getPlayer().getName()+"_y",null);                            SignCopy.selected.put(event.getPlayer().getName()+"_z",null);                            //for (int i=1; i<4; i++) {                            //    lines = sign.getLine(i);                           // }                            lines = sign.getLines();                                                                                    event.getPlayer().sendMessage(ChatColor.YELLOW + "[SignCopy] Sign selected.");                        } else {                            event.getPlayer().sendMessage(ChatColor.YELLOW + "[SignCopy] You need to select a sign!");                        }                    }                    else if (SignCopy.selected.get(event.getPlayer().getName()+"_mode") == 1) {                        int test = event.getClickedBlock().getY() + 1;                        final Block block = world.getBlockAt(new Location(world, event.getClickedBlock().getX(), event.getClickedBlock().getY() + 1, event.getClickedBlock().getZ()));                        if (block.getType() != Material.AIR) {                            event.getPlayer().sendMessage(ChatColor.YELLOW + "[SignCopy] Error. You can't use that block as your target.");                        } else {                            SignCopy.selected.put(event.getPlayer().getName()+"_mode",2);                            block.setType(Material.SIGN_POST);                            final BlockState state = world.getBlockAt(new Location(world, event.getClickedBlock().getX(), event.getClickedBlock().getY() + 1, event.getClickedBlock().getZ())).getState();                            if (state instanceof Sign) {                                sign = (Sign)state;                                for (int i=0; i<4; i++) {                                    sign.setLine(i, lines[i]);                                }                                String pl = sign.getData().toString();                                String[] dir = pl.split("[()]");                                System.out.println(dir[1]);                                String directio = dir[1];                                int direct = Integer.parseInt(directio);                                if (direct >= 8) {                                    direct = direct - 8;                                } else if (direct <= 7) {                                    direct = direct + 8;                                }                            md = new MaterialData(Material.SIGN_POST);                            sign.setData(md);                            Sign().setFacingDirection();                                sign.update(true);                                event.getPlayer().sendMessage(ChatColor.YELLOW + "[SignCopy] Sign copied!");                            }                        }                    }                    else if (SignCopy.selected.get(event.getPlayer().getName()+"_mode") == 2) {                        final BlockState state = world.getBlockAt(new Location(world, event.getClickedBlock().getX(), event.getClickedBlock().getY(), event.getClickedBlock().getZ())).getState();                        if (state instanceof Sign) {                            sign = (Sign)state;                            SignCopy.selected.put(event.getPlayer().getName()+"_mode",1);                            SignCopy.selected.put(event.getPlayer().getName()+"_x",null);                            SignCopy.selected.put(event.getPlayer().getName()+"_y",null);                            SignCopy.selected.put(event.getPlayer().getName()+"_z",null);                            lines = sign.getLines();                            String pl = sign.getData().toString();                            String[] dir = pl.split("[()]");                            System.out.println(dir[1]);                            System.out.println(sign.getData());                            event.getPlayer().sendMessage(ChatColor.YELLOW + "[SignCopy] Sign selected.");                        } else {                            event.getPlayer().sendMessage(ChatColor.YELLOW + "[SignCopy] You need to select a sign!");                        }                    }                //}            }        }    }}