mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 12:36:41 +00:00
Patches
1. Remove marco from dev 2. Add namehistory 3. Fix grammar issues 4. Actually use CoreProtect bridge to rollback players 5. Improve automatic wiper
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
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;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@ -11,100 +13,77 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Place a cage around someone.", usage = "/<command> <purge | off | <partialname> [outermaterial] [innermaterial]>")
|
||||
@CommandParameters(description = "Place a cage around someone.", usage = "/<command> <purge | off | <partialname> [skull | block] [blockname | skullname]")
|
||||
public class Command_cage extends FreedomCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
if (args.length == 0)
|
||||
{
|
||||
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) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ("off".equals(args[0]) && sender instanceof Player)
|
||||
{
|
||||
if ("off".equals(args[0]) && sender instanceof Player) {
|
||||
FUtil.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
||||
FPlayer playerdata = plugin.pl.getPlayer(playerSender);
|
||||
|
||||
final FPlayer playerdata = ((TotalFreedomMod)this.plugin).pl.getPlayer(playerSender);
|
||||
playerdata.getCageData().setCaged(false);
|
||||
return true;
|
||||
}
|
||||
else if ("purge".equals(args[0]))
|
||||
{
|
||||
if ("purge".equals(args[0])) {
|
||||
FUtil.adminAction(sender.getName(), "Uncaging all players", true);
|
||||
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
FPlayer playerdata = plugin.pl.getPlayer(player);
|
||||
playerdata.getCageData().setCaged(false);
|
||||
for (final Player player : this.server.getOnlinePlayers()) {
|
||||
final FPlayer playerdata2 = ((TotalFreedomMod)this.plugin).pl.getPlayer(player);
|
||||
playerdata2.getCageData().setCaged(false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
final Player player2 = this.getPlayer(args[0]);
|
||||
if (player2 == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
FPlayer playerdata = plugin.pl.getPlayer(player);
|
||||
|
||||
final FPlayer playerdata3 = ((TotalFreedomMod)this.plugin).pl.getPlayer(player2);
|
||||
Material outerMaterial = Material.GLASS;
|
||||
Material innerMaterial = Material.AIR;
|
||||
|
||||
if (args.length >= 2)
|
||||
{
|
||||
if ("off".equals(args[1]))
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
||||
playerdata.getCageData().setCaged(false);
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ("darth".equalsIgnoreCase(args[1]))
|
||||
{
|
||||
outerMaterial = Material.SKULL;
|
||||
if (args.length >= 2 && null != args[1]) {
|
||||
final String s = args[1];
|
||||
switch (s) {
|
||||
case "off": {
|
||||
FUtil.adminAction(sender.getName(), "Uncaging " + player2.getName(), true);
|
||||
playerdata3.getCageData().setCaged(false);
|
||||
return true;
|
||||
}
|
||||
else if (Material.matchMaterial(args[1]) != null)
|
||||
{
|
||||
outerMaterial = Material.matchMaterial(args[1]);
|
||||
case "skull": {
|
||||
outerMaterial = Material.SKULL;
|
||||
Command_cage.playerSkullName = args[2];
|
||||
break;
|
||||
}
|
||||
case "block": {
|
||||
if (Material.matchMaterial(args[2]) != null) {
|
||||
outerMaterial = Material.matchMaterial(args[2]);
|
||||
break;
|
||||
}
|
||||
sender.sendMessage(ChatColor.RED + "Invalid block!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Location targetPos = player.getLocation().clone().add(0, 1, 0);
|
||||
playerdata.getCageData().cage(targetPos, outerMaterial, innerMaterial);
|
||||
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
if (outerMaterial != Material.SKULL)
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
||||
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);
|
||||
}
|
||||
else
|
||||
{
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in PURE_DARTH", true);
|
||||
else {
|
||||
FUtil.adminAction(sender.getName(), "Caging " + player2.getName() + " in " + Command_cage.playerSkullName, true);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user