Core/src/main/java/eu/univento/core/commands/ModCommands.java

79 lines
3.5 KiB
Java

/*
* Copyright (c) 2017 univento.eu - All rights reserved
* You are not allowed to use, distribute or modify this code
*/
package eu.univento.core.commands;
import eu.univento.commons.player.rank.Rank;
import eu.univento.core.Core;
import eu.univento.core.api.command.Command;
import eu.univento.core.api.command.CommandArgs;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.core.api.server.ServerSettings;
import lombok.Getter;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.HashMap;
/**
* @author joethei
* @version 1.0
*/
public class ModCommands {
@Getter private static ArrayList<CustomPlayer> vanishedPlayers = new ArrayList<>();
private HashMap<CustomPlayer, ItemStack[]> inventoryContents = new HashMap<>();
private HashMap<CustomPlayer, ItemStack[]> armorContents = new HashMap<>();
@Command(name="chatclear", aliases = {"cc"}, description = "clears the chat", usage = "/clearchat", rank = Rank.JrModerator, inGameOnly = true)
public void chatClear(CommandArgs args) {
for(CustomPlayer player : Core.getOnlinePlayers()) {
if(!player.getDatabasePlayer().isAllowed(Rank.JrSupporter)) {
for(int i = 0; i <= 100; i++) player.sendMessage("");
}else player.sendMessage("§cDer Chat wurde von " + args.getPlayer().getDatabasePlayer().getRank().getColor() + args.getPlayer().getName() + " §cgeleert");
}
}
@Command(name="vanish", aliases={"v"}, description = "hide yourself", usage = "/vanish", rank = Rank.JrModerator, inGameOnly = true)
public void vanish(CommandArgs args) {
if(vanishedPlayers.contains(args.getPlayer())) {
for(CustomPlayer player : Core.getOnlinePlayers()) player.showPlayer(args.getPlayer());
vanishedPlayers.remove(args.getPlayer());
}else {
for(CustomPlayer player : Core.getOnlinePlayers()) player.hidePlayer(args.getPlayer());
vanishedPlayers.add(args.getPlayer());
}
}
@Command(name = "servermute", aliases = {"smute"}, description = "mute the entire server", usage = "/servermute", rank = Rank.SrModerator, inGameOnly = true)
public void serverMute(CommandArgs args) {
if(ServerSettings.isMute()) ServerSettings.setMute(false);
else ServerSettings.setMute(true);
}
@Command(name = "invsee", description = "see other players inventories", usage = "/invsee <player>", rank = Rank.JrModerator, inGameOnly = true)
public void invsee(CommandArgs args) {
CustomPlayer p = args.getPlayer();
if(args.length() == 1 && CustomPlayer.getPlayer(args.getArg(0)) != null) {
CustomPlayer t = CustomPlayer.getPlayer(args.getArg(0));
assert t != null;
if(inventoryContents.containsKey(p) && armorContents.containsKey(p))
return;
inventoryContents.put(p, p.getInventory().getContents());
armorContents.put(p, p.getInventory().getArmorContents());
p.getInventory().setContents(t.getInventory().getContents());
p.getInventory().setArmorContents(t.getInventory().getArmorContents());
p.openInventory(p.getInventory());
}
if(args.length() == 1 && args.getArg(0).equalsIgnoreCase("clear")) {
p.getInventory().setContents(inventoryContents.get(p));
p.getInventory().setArmorContents(armorContents.get(p));
inventoryContents.remove(p);
armorContents.remove(p);
}
}
}