Saber-Factions/src/main/java/com/massivecraft/factions/cmd/CmdInventorySee.java
2019-09-15 05:19:06 -04:00

66 lines
2.2 KiB
Java

package com.massivecraft.factions.cmd;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.FactionsPlugin;
import com.massivecraft.factions.struct.Permission;
import com.massivecraft.factions.struct.Role;
import com.massivecraft.factions.zcore.fperms.Access;
import com.massivecraft.factions.zcore.fperms.PermissableAction;
import com.massivecraft.factions.zcore.util.TL;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import java.util.ArrayList;
import java.util.Objects;
public class CmdInventorySee extends FCommand {
public CmdInventorySee() {
super();
this.aliases.add("invsee");
this.aliases.add("inventorysee");
this.requiredArgs.add("member name");
this.requirements = new CommandRequirements.Builder(Permission.INVSEE)
.playerOnly()
.build();
}
@Override
public void perform(CommandContext context) {
if (!FactionsPlugin.getInstance().getConfig().getBoolean("f-inventory-see.Enabled")) {
context.msg(TL.GENERIC_DISABLED);
return;
}
Access use = context.fPlayer.getFaction().getAccess(context.fPlayer, PermissableAction.TERRITORY);
if (use == Access.DENY || (use == Access.UNDEFINED && !context.assertMinRole(Role.MODERATOR))) {
context.msg(TL.GENERIC_NOPERMISSION, "territory");
return;
}
ArrayList<Player> fplayers = context.fPlayer.getFaction().getOnlinePlayers();
FPlayer targetInv = context.argAsFPlayer(0);
if (targetInv == null || !fplayers.contains(targetInv.getPlayer())) {
context.msg(TL.PLAYER_NOT_FOUND, Objects.requireNonNull(targetInv).toString());
return;
}
Inventory inventory = Bukkit.createInventory(context.player, 36, targetInv.getName() + "'s Inventory");
for (int i = 0; i < 36; i++)
if (targetInv.getPlayer().getInventory().getItem(i) != null)
inventory.setItem(i, targetInv.getPlayer().getInventory().getItem(i));
context.player.openInventory(inventory);
}
@Override
public TL getUsageTranslation() {
return TL.COMMAND_INVENTORYSEE_DESCRIPTION;
}
}