Skip to content

Instantly share code, notes, and snippets.

@NeatMonster
Last active December 26, 2015 23:29
Show Gist options
  • Save NeatMonster/b5c56955c2fee1c33d2f to your computer and use it in GitHub Desktop.
Save NeatMonster/b5c56955c2fee1c33d2f to your computer and use it in GitHub Desktop.
name: SpawnUtils
version: 1.1
author: NeatMonster
main: fr.neatmonster.spawnutils.SpawnUtils
commands:
spawnutils:
aliases: [su]
package fr.neatmonster.spawnutils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.java.JavaPlugin;
public class SpawnUtils extends JavaPlugin implements Listener {
@Override
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
if (command.getName().equalsIgnoreCase("spawnutils")) {
if (sender instanceof Player)
sender.sendMessage(ChatColor.RED + "This command isn't for players!");
else if (args.length != 1 && args.length != 4 && args.length != 6)
sender.sendMessage(ChatColor.YELLOW + "Usage: /su <player> [x] [y] [z] [yaw] [pitch]");
else {
final Player player = Bukkit.getPlayer(args[0]);
if (player == null)
sender.sendMessage(ChatColor.RED + "This given player doesn't exist!");
else if (args.length == 1) {
player.removeMetadata("spawnutils", this);
sender.sendMessage(ChatColor.GREEN + "Spawning location unset!");
} else
try {
final int x = Integer.parseInt(args[1]);
final int y = Integer.parseInt(args[2]);
final int z = Integer.parseInt(args[3]);
final int yaw = args.length == 6 ? Integer.parseInt(args[4]) : 0;
final int pitch = args.length == 6 ? Integer.parseInt(args[5]) : 0;
player.setMetadata("spawnutils", new FixedMetadataValue(this, new Location(player.getWorld(),
x, y, z, yaw, pitch)));
sender.sendMessage(ChatColor.GREEN + "Spawning location set!");
} catch (final Exception e) {
sender.sendMessage(ChatColor.YELLOW + "Usage: /su <player> [x] [y] [z] [yaw] [pitch]");
}
}
return true;
}
return false;
}
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerRespawn(final PlayerRespawnEvent event) {
if (event.getPlayer().hasMetadata("spawnutils"))
event.setRespawnLocation((Location) event.getPlayer().getMetadata("spawnutils").get(0).value());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment