mirror of
https://github.com/songoda/UltimateModeration.git
synced 2024-09-28 06:27:32 +02:00
Added /p as an aliast for /ultimatemoderation.
You can no longer pick up blocks while spying. Added a search feature to find users faster. Added the ability to alter online players. Added the ability to toggle between online and offline players in the players menu.
This commit is contained in:
parent
be453c69ab
commit
a68fd0dee3
@ -41,8 +41,8 @@ public class CommandSpy extends AbstractCommand {
|
|||||||
|
|
||||||
boolean didVanish = false;
|
boolean didVanish = false;
|
||||||
if (!CommandVanish.isVanished(senderP)) {
|
if (!CommandVanish.isVanished(senderP)) {
|
||||||
didVanish = true;
|
|
||||||
CommandVanish.vanish(senderP);
|
CommandVanish.vanish(senderP);
|
||||||
|
senderP.setCanPickupItems(false);
|
||||||
}
|
}
|
||||||
senderP.teleport(player.getPlayer().getLocation());
|
senderP.teleport(player.getPlayer().getLocation());
|
||||||
|
|
||||||
|
@ -42,9 +42,11 @@ public class CommandVanish extends AbstractCommand {
|
|||||||
|
|
||||||
if (inVanish.contains(uuid)) {
|
if (inVanish.contains(uuid)) {
|
||||||
inVanish.remove(uuid);
|
inVanish.remove(uuid);
|
||||||
|
player.setCanPickupItems(true);
|
||||||
player.sendMessage(Methods.formatText(instance.getReferences().getPrefix() + instance.getLocale().getMessage("command.vanish.toggledOff")));
|
player.sendMessage(Methods.formatText(instance.getReferences().getPrefix() + instance.getLocale().getMessage("command.vanish.toggledOff")));
|
||||||
} else {
|
} else {
|
||||||
inVanish.add(uuid);
|
inVanish.add(uuid);
|
||||||
|
player.setCanPickupItems(false);
|
||||||
player.sendMessage(Methods.formatText(instance.getReferences().getPrefix() + instance.getLocale().getMessage("command.vanish.toggledOn")));
|
player.sendMessage(Methods.formatText(instance.getReferences().getPrefix() + instance.getLocale().getMessage("command.vanish.toggledOn")));
|
||||||
}
|
}
|
||||||
if (SettingsManager.Setting.VANISH_EFFECTS.getBoolean()) {
|
if (SettingsManager.Setting.VANISH_EFFECTS.getBoolean()) {
|
||||||
|
@ -29,7 +29,7 @@ public class GUIModerate extends AbstractGUI {
|
|||||||
@Override
|
@Override
|
||||||
protected void constructGUI() {
|
protected void constructGUI() {
|
||||||
|
|
||||||
createButton(8, plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.OAK_DOOR : Material.valueOf("WOOD_DOOR"), "Back");
|
createButton(8, plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.OAK_DOOR : Material.valueOf("WOOD_DOOR"), plugin.getLocale().getMessage("gui.general.back"));
|
||||||
|
|
||||||
createButton(10, plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.BLUE_ICE : Material.valueOf("PACKED_ICE"), "&6&lFreeze", "&7Stop this player from moving.", "", "&7Currently:&6 " + (CommandFreeze.isFrozen(toModerate) ? "Frozen" : "Unfrozen"));
|
createButton(10, plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.BLUE_ICE : Material.valueOf("PACKED_ICE"), "&6&lFreeze", "&7Stop this player from moving.", "", "&7Currently:&6 " + (CommandFreeze.isFrozen(toModerate) ? "Frozen" : "Unfrozen"));
|
||||||
createButton(12, Material.SADDLE, "&6&lSpy", "&7Spy on this player");
|
createButton(12, Material.SADDLE, "&6&lSpy", "&7Spy on this player");
|
||||||
|
@ -33,13 +33,15 @@ public class GUIPlayer extends AbstractGUI {
|
|||||||
meta.setOwner(toModerate.getName());
|
meta.setOwner(toModerate.getName());
|
||||||
head.setItemMeta(meta);
|
head.setItemMeta(meta);
|
||||||
|
|
||||||
createButton(13, head, "&7&l" + toModerate.getName());
|
createButton(13, head, "&7&l" + toModerate.getName(),
|
||||||
|
player.isOnline() ? "&a" + plugin.getLocale().getMessage("gui.players.online.online") : "&c" + plugin.getLocale().getMessage("gui.players.online.offline"));
|
||||||
|
|
||||||
createButton(8, plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.OAK_DOOR : Material.valueOf("WOOD_DOOR"), plugin.getLocale().getMessage("gui.general.back"));
|
createButton(8, plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.OAK_DOOR : Material.valueOf("WOOD_DOOR"), plugin.getLocale().getMessage("gui.general.back"));
|
||||||
|
|
||||||
createButton(38, Material.ANVIL, plugin.getLocale().getMessage("gui.player.punish"));
|
createButton(38, Material.ANVIL, plugin.getLocale().getMessage("gui.player.punish"));
|
||||||
createButton(30, Material.CHEST, plugin.getLocale().getMessage("gui.player.tickets"));
|
createButton(30, Material.CHEST, plugin.getLocale().getMessage("gui.player.tickets"));
|
||||||
createButton(32, Material.DIAMOND_SWORD, plugin.getLocale().getMessage("gui.player.punishments"));
|
if (player.isOnline())
|
||||||
|
createButton(32, Material.DIAMOND_SWORD, plugin.getLocale().getMessage("gui.player.punishments"));
|
||||||
createButton(42, Material.MAP, plugin.getLocale().getMessage("gui.player.notes"));
|
createButton(42, Material.MAP, plugin.getLocale().getMessage("gui.player.notes"));
|
||||||
createButton(40, Material.DIAMOND_CHESTPLATE, plugin.getLocale().getMessage("gui.player.moderate"));
|
createButton(40, Material.DIAMOND_CHESTPLATE, plugin.getLocale().getMessage("gui.player.moderate"));
|
||||||
}
|
}
|
||||||
|
@ -5,15 +5,19 @@ import com.songoda.ultimatemoderation.punish.PunishmentType;
|
|||||||
import com.songoda.ultimatemoderation.punish.player.PlayerPunishData;
|
import com.songoda.ultimatemoderation.punish.player.PlayerPunishData;
|
||||||
import com.songoda.ultimatemoderation.tickets.TicketStatus;
|
import com.songoda.ultimatemoderation.tickets.TicketStatus;
|
||||||
import com.songoda.ultimatemoderation.utils.ServerVersion;
|
import com.songoda.ultimatemoderation.utils.ServerVersion;
|
||||||
|
import com.songoda.ultimatemoderation.utils.gui.AbstractAnvilGUI;
|
||||||
import com.songoda.ultimatemoderation.utils.gui.AbstractGUI;
|
import com.songoda.ultimatemoderation.utils.gui.AbstractGUI;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class GUIPlayers extends AbstractGUI {
|
public class GUIPlayers extends AbstractGUI {
|
||||||
@ -22,6 +26,7 @@ public class GUIPlayers extends AbstractGUI {
|
|||||||
|
|
||||||
private int task;
|
private int task;
|
||||||
private int page = 0;
|
private int page = 0;
|
||||||
|
private Online currentOnline = Online.ONLINE;
|
||||||
|
|
||||||
public GUIPlayers(UltimateModeration plugin, Player player) {
|
public GUIPlayers(UltimateModeration plugin, Player player) {
|
||||||
super(player);
|
super(player);
|
||||||
@ -41,7 +46,21 @@ public class GUIPlayers extends AbstractGUI {
|
|||||||
int numNotes = Bukkit.getOnlinePlayers().size();
|
int numNotes = Bukkit.getOnlinePlayers().size();
|
||||||
int maxPage = (int) Math.floor(numNotes / 36.0);
|
int maxPage = (int) Math.floor(numNotes / 36.0);
|
||||||
|
|
||||||
List<Player> players = new ArrayList<>(Bukkit.getOnlinePlayers()).stream()
|
List<UUID> players = new ArrayList<>();
|
||||||
|
|
||||||
|
if (currentOnline == Online.ONLINE || currentOnline == Online.BOTH) {
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
players.add(player.getUniqueId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (currentOnline == Online.OFFLINE || currentOnline == Online.BOTH) {
|
||||||
|
for (UUID uuid : plugin.getPunishmentManager().getPunishments().keySet()) {
|
||||||
|
if (Bukkit.getOfflinePlayer(uuid).isOnline()) continue;
|
||||||
|
players.add(uuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
players = players.stream()
|
||||||
.skip(page * 36).limit(36).collect(Collectors.toList());
|
.skip(page * 36).limit(36).collect(Collectors.toList());
|
||||||
|
|
||||||
if (page != 0) {
|
if (page != 0) {
|
||||||
@ -61,7 +80,7 @@ public class GUIPlayers extends AbstractGUI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < players.size(); i++) {
|
for (int i = 0; i < players.size(); i++) {
|
||||||
Player pl = players.get(i);
|
OfflinePlayer pl = Bukkit.getOfflinePlayer(players.get(i));
|
||||||
|
|
||||||
PlayerPunishData playerPunishData = plugin.getPunishmentManager().getPlayer(pl);
|
PlayerPunishData playerPunishData = plugin.getPunishmentManager().getPlayer(pl);
|
||||||
|
|
||||||
@ -108,16 +127,70 @@ public class GUIPlayers extends AbstractGUI {
|
|||||||
for (int i = 0; i < 9; i++)
|
for (int i = 0; i < 9; i++)
|
||||||
createButton(36 + i, plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.GRAY_STAINED_GLASS_PANE : new ItemStack(Material.valueOf("STAINED_GLASS_PANE")), "&1");
|
createButton(36 + i, plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.GRAY_STAINED_GLASS_PANE : new ItemStack(Material.valueOf("STAINED_GLASS_PANE")), "&1");
|
||||||
|
|
||||||
createButton(51, Material.CHEST, "&7Tickets");
|
createButton(46, Material.ENDER_PEARL, plugin.getLocale().getMessage("gui.players.search"));
|
||||||
|
createButton(47, Material.HOPPER, "&6" + currentOnline.getTranslation());
|
||||||
|
|
||||||
|
createButton(51, Material.CHEST, plugin.getLocale().getMessage("gui.players.button.tickets"));
|
||||||
createButton(52, Material.MAP, plugin.getLocale().getMessage("gui.players.button.templatemanager"));
|
createButton(52, Material.MAP, plugin.getLocale().getMessage("gui.players.button.templatemanager"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private enum Online {
|
||||||
|
|
||||||
|
ONLINE, OFFLINE, BOTH;
|
||||||
|
|
||||||
|
private static Online[] vals = values();
|
||||||
|
|
||||||
|
public Online next() {
|
||||||
|
return vals[(this.ordinal() != vals.length - 1 ? this.ordinal() + 1 : 0)];
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTranslation() {
|
||||||
|
return UltimateModeration.getInstance().getLocale().getMessage("gui.players.online." + this.name().toLowerCase());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void runTask() {
|
private void runTask() {
|
||||||
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, this::constructGUI, 5L, 5L);
|
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, this::constructGUI, 5L, 5L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void registerClickables() {
|
protected void registerClickables() {
|
||||||
|
|
||||||
|
registerClickable(46, ((player1, inventory1, cursor, slot, type) -> {
|
||||||
|
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event -> {
|
||||||
|
List<UUID> players = new ArrayList<>(plugin.getPunishmentManager().getPunishments().keySet());
|
||||||
|
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
if (players.contains(player.getUniqueId())) continue;
|
||||||
|
players.add(player.getUniqueId());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<UUID> found = players.stream().filter(uuid -> Bukkit.getOfflinePlayer(uuid).getName().equalsIgnoreCase(event.getName())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (found.size() == 1) {
|
||||||
|
new GUIPlayer(plugin, Bukkit.getOfflinePlayer(found.get(0)), player);
|
||||||
|
} else {
|
||||||
|
player.sendMessage(plugin.getLocale().getMessage("gui.players.nonefound"));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
ItemStack item = new ItemStack(Material.PAPER);
|
||||||
|
ItemMeta meta = item.getItemMeta();
|
||||||
|
meta.setDisplayName(plugin.getLocale().getMessage("gui.players.name"));
|
||||||
|
item.setItemMeta(meta);
|
||||||
|
|
||||||
|
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, item);
|
||||||
|
gui.open();
|
||||||
|
}));
|
||||||
|
|
||||||
|
registerClickable(47, ((player1, inventory1, cursor, slot, type) -> {
|
||||||
|
this.currentOnline = currentOnline.next();
|
||||||
|
this.page = 0;
|
||||||
|
constructGUI();
|
||||||
|
}));
|
||||||
|
|
||||||
registerClickable(51, (player1, inventory1, cursor, slot, type) ->
|
registerClickable(51, (player1, inventory1, cursor, slot, type) ->
|
||||||
new GUITicketManager(plugin, null, player));
|
new GUITicketManager(plugin, null, player));
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ public class TicketManager {
|
|||||||
return registeredTickets.values().stream().filter(ticket -> ticket.getStatus() == status).collect(Collectors.toList());
|
return registeredTickets.values().stream().filter(ticket -> ticket.getStatus() == status).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Ticket> getTicketsAbout(Player player) {
|
public List<Ticket> getTicketsAbout(OfflinePlayer player) {
|
||||||
return getTicketsAbout(player.getUniqueId());
|
return getTicketsAbout(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +83,14 @@ gui.players.ticketsone = "&7This player has &61 &7open ticket."
|
|||||||
gui.players.nowarnings = "&7No warnings recorded."
|
gui.players.nowarnings = "&7No warnings recorded."
|
||||||
gui.players.warnings = "&7This player has received &6%amount% &7warnings."
|
gui.players.warnings = "&7This player has received &6%amount% &7warnings."
|
||||||
gui.players.warningsone = "&7This player has received &61 &7warning."
|
gui.players.warningsone = "&7This player has received &61 &7warning."
|
||||||
|
gui.players.online.online = "Online"
|
||||||
|
gui.players.online.offline = "Offline"
|
||||||
|
gui.players.online.both = "Both"
|
||||||
|
gui.players.button.tickets = "&7Tickets"
|
||||||
gui.players.button.templatemanager = "&6&lTemplate Manager"
|
gui.players.button.templatemanager = "&6&lTemplate Manager"
|
||||||
|
gui.players.name = "Player Name"
|
||||||
|
gui.players.search = "&7Search for player"
|
||||||
|
gui.players.nonefound = "No players found."
|
||||||
|
|
||||||
gui.templateselector.title = "&8Select a Template"
|
gui.templateselector.title = "&8Select a Template"
|
||||||
gui.templateselector.click = "&7Click to select this template."
|
gui.templateselector.click = "&7Click to select this template."
|
||||||
|
@ -8,7 +8,7 @@ commands:
|
|||||||
UltimateModeration:
|
UltimateModeration:
|
||||||
description: View information on this plugin.
|
description: View information on this plugin.
|
||||||
default: true
|
default: true
|
||||||
aliases: [um]
|
aliases: [um, p]
|
||||||
usage: /um
|
usage: /um
|
||||||
ClearChat:
|
ClearChat:
|
||||||
description: Clear the chat
|
description: Clear the chat
|
||||||
|
Loading…
Reference in New Issue
Block a user