Skip to content

Instantly share code, notes, and snippets.

@LaxWasHere
Created March 13, 2014 20:21
Show Gist options
  • Save LaxWasHere/9536190 to your computer and use it in GitHub Desktop.
Save LaxWasHere/9536190 to your computer and use it in GitHub Desktop.
Checkpoint plugin.
package net.awesomepowered.parkour;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Parkour extends JavaPlugin implements Listener {
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
Player p = (Player) sender;
if (commandLabel.equalsIgnoreCase("gocheckpoint")) {
System.out.println(p.getBedSpawnLocation());
if (p.getBedSpawnLocation() != null) {
Location checkpoint = p.getBedSpawnLocation();
p.teleport(checkpoint);
} else {
p.sendMessage(ChatColor.RED + "No checkpoints saved.");
}
} return false;
}
@EventHandler
public void onSignClick(PlayerInteractEvent ev) {
if (ev.getAction() == Action.RIGHT_CLICK_BLOCK || ev.getAction() == Action.LEFT_CLICK_BLOCK) {
Block blockClicked = ev.getClickedBlock();
if (blockClicked.getType() == Material.WALL_SIGN || blockClicked.getType() == Material.SIGN_POST) {
Sign checkpoint = (Sign) blockClicked.getState();
if (checkpoint.getLine(2).equalsIgnoreCase("checkpoint")) {
ev.getPlayer().setBedSpawnLocation(ev.getPlayer().getLocation(), true);
ev.getPlayer().sendMessage(ChatColor.GREEN + "Checkpoint saved!");
System.out.println("Location: " + ev.getPlayer().getLocation());
Bukkit.getConsoleSender().sendMessage(ChatColor.AQUA + "Checkpoint set for " + ChatColor.GREEN + ev.getPlayer().getName());
}
}
}
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent ev) {
ev.getPlayer().setBedSpawnLocation(Bukkit.getWorld("Parkour").getSpawnLocation());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment