Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.alias_me.guideposts;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.World;
- import org.bukkit.block.*;
- import org.bukkit.block.data.Directional;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.SignChangeEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.plugin.Plugin;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import static org.bukkit.Material.*;
- public class PlaceSigns implements Listener {
- @EventHandler
- public void signPlaced(SignChangeEvent event) throws IOException {
- Block signblock = (Block)event.getBlock();
- Sign sign = (Sign) signblock.getState();
- String text = (String) event.getLine(0);
- Player user = (Player) event.getPlayer();
- if(isGuidepost(sign)) {
- File waypoint = new File("plugins/Guideposts/" + text + ".yml");
- //Checks if waypoint file already exists
- if (!waypoint.exists()) {
- waypoint.createNewFile();
- writeTeleportLocation(waypoint, sign);
- BufferedWriter writer = new BufferedWriter(new FileWriter("plugins/Guideposts/" + text + ".yml"));
- writer.write(signblock.getLocation().add(-2,0,0).toString());
- writer.close();
- //Reload Plugin
- user.sendMessage(ChatColor.YELLOW + "Guidepost " + ChatColor.RED + text + ChatColor.YELLOW + " has been build and is now available for fast travel.");
- } else {
- user.sendMessage(ChatColor.RED + "A guidepost with this name already exists!");
- signblock.setType(AIR);
- user.getInventory().addItem(new ItemStack(SIGN));
- }
- }
- }
- public boolean isGuidepost(Sign sign) {
- World world = (World) sign.getWorld();
- if(world.getBlockAt(sign.getLocation().clone().add(0, -1, 0)).getType() == COBBLESTONE_WALL) {
- if(world.getBlockAt(sign.getLocation().clone().add(0, -2, 0)).getType() == DIAMOND_BLOCK) {
- return true;
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
- //TO-DO: Create Method to Check sign direction and adjust TP Location Accordingly
- public void writeTeleportLocation(File file, Sign sign) {
- Directional direction = (Directional) sign.getBlockData();
- System.out.println(direction);
- }
- }
Add Comment
Please, Sign In to add comment