Guest User

Untitled

a guest
Jan 19th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.60 KB | None | 0 0
  1. package me.alias_me.guideposts;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.Location;
  6. import org.bukkit.World;
  7. import org.bukkit.block.*;
  8. import org.bukkit.block.data.Directional;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.block.SignChangeEvent;
  13. import org.bukkit.inventory.ItemStack;
  14. import org.bukkit.plugin.Plugin;
  15.  
  16. import java.io.BufferedWriter;
  17. import java.io.File;
  18. import java.io.FileWriter;
  19. import java.io.IOException;
  20. import static org.bukkit.Material.*;
  21.  
  22. public class PlaceSigns implements Listener {
  23.     @EventHandler
  24.     public void signPlaced(SignChangeEvent event) throws IOException {
  25.         Block signblock = (Block)event.getBlock();
  26.         Sign sign = (Sign) signblock.getState();
  27.         String text = (String) event.getLine(0);
  28.         Player user = (Player) event.getPlayer();
  29.  
  30.         if(isGuidepost(sign)) {
  31.             File waypoint = new File("plugins/Guideposts/" + text + ".yml");
  32.             //Checks if waypoint file already exists
  33.             if (!waypoint.exists()) {
  34.                 waypoint.createNewFile();
  35.                 writeTeleportLocation(waypoint, sign);
  36.                 BufferedWriter writer = new BufferedWriter(new FileWriter("plugins/Guideposts/" + text + ".yml"));
  37.                 writer.write(signblock.getLocation().add(-2,0,0).toString());
  38.                 writer.close();
  39.                 //Reload Plugin
  40.                 user.sendMessage(ChatColor.YELLOW + "Guidepost " + ChatColor.RED + text + ChatColor.YELLOW + " has been build and is now available for fast travel.");
  41.             } else {
  42.                 user.sendMessage(ChatColor.RED + "A guidepost with this name already exists!");
  43.                 signblock.setType(AIR);
  44.                 user.getInventory().addItem(new ItemStack(SIGN));
  45.             }
  46.         }
  47.     }
  48.     public boolean isGuidepost(Sign sign) {
  49.         World world = (World) sign.getWorld();
  50.         if(world.getBlockAt(sign.getLocation().clone().add(0, -1, 0)).getType() == COBBLESTONE_WALL) {
  51.             if(world.getBlockAt(sign.getLocation().clone().add(0, -2, 0)).getType() == DIAMOND_BLOCK) {
  52.                 return true;
  53.             } else {
  54.                 return false;
  55.             }
  56.         } else {
  57.             return false;
  58.         }
  59.     }
  60.     //TO-DO: Create Method to Check sign direction and adjust TP Location Accordingly
  61.     public void writeTeleportLocation(File file, Sign sign) {
  62.         Directional direction = (Directional) sign.getBlockData();
  63.         System.out.println(direction);
  64.     }
  65. }
Add Comment
Please, Sign In to add comment