mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 12:36:41 +00:00
More improvements. (#15)
* This is rediculous * Forgot some final and this * Fixed and improved skull caging * Windows wanted this yeah
This commit is contained in:
@ -1,6 +1,5 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
||||
import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
@ -16,49 +15,64 @@ import org.bukkit.entity.Player;
|
||||
@CommandParameters(description = "Place a cage around someone.", usage = "/<command> <purge | off | <partialname> [skull | block] [blockname | skullname]")
|
||||
public class Command_cage extends FreedomCommand
|
||||
{
|
||||
public static String playerSkullName;
|
||||
|
||||
public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole)
|
||||
{
|
||||
if (args.length == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ("off".equals(args[0]) && sender instanceof Player) {
|
||||
String skullName = null;
|
||||
if ("off".equals(args[0]) && sender instanceof Player)
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
||||
final FPlayer playerdata = ((TotalFreedomMod)this.plugin).pl.getPlayer(playerSender);
|
||||
final FPlayer playerdata = plugin.pl.getPlayer(playerSender);
|
||||
playerdata.getCageData().setCaged(false);
|
||||
return true;
|
||||
}
|
||||
if ("purge".equals(args[0])) {
|
||||
if ("purge".equals(args[0]))
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Uncaging all players", true);
|
||||
for (final Player player : this.server.getOnlinePlayers()) {
|
||||
final FPlayer playerdata2 = ((TotalFreedomMod)this.plugin).pl.getPlayer(player);
|
||||
playerdata2.getCageData().setCaged(false);
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
final FPlayer fPlayer = plugin.pl.getPlayer(player);
|
||||
fPlayer.getCageData().setCaged(false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
final Player player2 = this.getPlayer(args[0]);
|
||||
if (player2 == null) {
|
||||
Player player = getPlayer(args[0]);
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
final FPlayer playerdata3 = ((TotalFreedomMod)this.plugin).pl.getPlayer(player2);
|
||||
final FPlayer fPlayer = plugin.pl.getPlayer(player);
|
||||
Material outerMaterial = Material.GLASS;
|
||||
Material innerMaterial = Material.AIR;
|
||||
if (args.length >= 2 && null != args[1]) {
|
||||
if (args.length >= 2 && args[1] != null)
|
||||
{
|
||||
final String s = args[1];
|
||||
switch (s) {
|
||||
case "off": {
|
||||
FUtil.adminAction(sender.getName(), "Uncaging " + player2.getName(), true);
|
||||
playerdata3.getCageData().setCaged(false);
|
||||
switch (s)
|
||||
{
|
||||
case "off":
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
||||
fPlayer.getCageData().setCaged(false);
|
||||
return true;
|
||||
}
|
||||
case "skull": {
|
||||
case "skull":
|
||||
{
|
||||
outerMaterial = Material.SKULL;
|
||||
Command_cage.playerSkullName = args[2];
|
||||
if (args.length >= 3)
|
||||
{
|
||||
skullName = args[2];
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "block": {
|
||||
if (Material.matchMaterial(args[2]) != null) {
|
||||
case "block":
|
||||
{
|
||||
if (Material.matchMaterial(args[2]) != null)
|
||||
{
|
||||
outerMaterial = Material.matchMaterial(args[2]);
|
||||
break;
|
||||
}
|
||||
@ -67,22 +81,34 @@ public class Command_cage extends FreedomCommand
|
||||
}
|
||||
}
|
||||
}
|
||||
if (args.length >= 3) {
|
||||
if (args[2].equalsIgnoreCase("water")) {
|
||||
if (args.length >= 3)
|
||||
{
|
||||
if (args[2].equalsIgnoreCase("water"))
|
||||
{
|
||||
innerMaterial = Material.STATIONARY_WATER;
|
||||
}
|
||||
else if (args[2].equalsIgnoreCase("lava")) {
|
||||
else if (args[2].equalsIgnoreCase("lava"))
|
||||
{
|
||||
innerMaterial = Material.STATIONARY_LAVA;
|
||||
}
|
||||
}
|
||||
final Location targetPos = player2.getLocation().clone().add(0.0, 1.0, 0.0);
|
||||
playerdata3.getCageData().cage(targetPos, outerMaterial, innerMaterial);
|
||||
player2.setGameMode(GameMode.SURVIVAL);
|
||||
if (outerMaterial != Material.SKULL) {
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player2.getName(), true);
|
||||
Location location = player.getLocation().clone().add(0.0, 1.0, 0.0);
|
||||
if (skullName != null)
|
||||
{
|
||||
fPlayer.getCageData().cage(location, outerMaterial, innerMaterial, skullName);
|
||||
}
|
||||
else {
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player2.getName() + " in " + Command_cage.playerSkullName, true);
|
||||
else
|
||||
{
|
||||
fPlayer.getCageData().cage(location, outerMaterial, innerMaterial);
|
||||
}
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
if (outerMaterial == Material.SKULL && skullName != null)
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user