Merge branch 'development'

This commit is contained in:
Brianna 2020-06-04 12:08:04 -05:00
commit eff2de6360
8 changed files with 47 additions and 41 deletions

View File

@ -2,7 +2,7 @@
<groupId>com.songoda</groupId> <groupId>com.songoda</groupId>
<artifactId>UltimateModeration</artifactId> <artifactId>UltimateModeration</artifactId>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.2.8</version> <version>1.2.9</version>
<build> <build>
<defaultGoal>clean install</defaultGoal> <defaultGoal>clean install</defaultGoal>
<finalName>UltimateModeration-${project.version}</finalName> <finalName>UltimateModeration-${project.version}</finalName>

View File

@ -241,4 +241,8 @@ public class UltimateModeration extends SongodaPlugin {
public StaffChatManager getStaffChatManager() { public StaffChatManager getStaffChatManager() {
return staffChatManager; return staffChatManager;
} }
public GuiManager getGuiManager() {
return guiManager;
}
} }

View File

@ -10,7 +10,6 @@ import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.omg.CORBA.TypeCodePackage.BadKind;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;

View File

@ -27,8 +27,8 @@ public class CommandSpy extends AbstractCommand {
public static void spy(OfflinePlayer oPlayer, Player senderP) { public static void spy(OfflinePlayer oPlayer, Player senderP) {
UltimateModeration instance = UltimateModeration.getInstance(); UltimateModeration instance = UltimateModeration.getInstance();
if (isSpying(senderP) && oPlayer == null) { if (spying.containsKey(senderP) && oPlayer == null) {
CommandSpy.Spy spyingEntry = CommandSpy.getSpying().remove(senderP.getUniqueId()); Spy spyingEntry = spying.remove(senderP.getUniqueId());
senderP.teleport(spyingEntry.getLastLocation()); senderP.teleport(spyingEntry.getLastLocation());
if (spyingEntry.isVanishApplied() && CommandVanish.isVanished(senderP)) if (spyingEntry.isVanishApplied() && CommandVanish.isVanished(senderP))
CommandVanish.vanish(senderP); CommandVanish.vanish(senderP);
@ -82,7 +82,7 @@ public class CommandSpy extends AbstractCommand {
Player senderP = ((Player) sender); Player senderP = ((Player) sender);
if (args.length == 0) { if (args.length == 0 || spying.containsKey(senderP.getUniqueId())) {
if (!spying.containsKey(senderP.getUniqueId())) if (!spying.containsKey(senderP.getUniqueId()))
return ReturnType.SYNTAX_ERROR; return ReturnType.SYNTAX_ERROR;
Spy spyingEntry = spying.remove(senderP.getUniqueId()); Spy spyingEntry = spying.remove(senderP.getUniqueId());
@ -138,10 +138,6 @@ public class CommandSpy extends AbstractCommand {
return "Allows you to spy on a player."; return "Allows you to spy on a player.";
} }
public static Map<UUID, Spy> getSpying() {
return spying;
}
public static class Spy { public static class Spy {
private Location lastLocation; private Location lastLocation;
private boolean vanishApplied; private boolean vanishApplied;

View File

@ -38,7 +38,7 @@ public class CommandStaffChat extends AbstractCommand {
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
instance.getLocale().getMessage("event.staffchat.leave") instance.getLocale().getMessage("event.staffchat.join")
.processPlaceholder("channel", channelName).sendPrefixedMessage(player); .processPlaceholder("channel", channelName).sendPrefixedMessage(player);
instance.getStaffChatManager().getChat(channelName).addMember(player); instance.getStaffChatManager().getChat(channelName).addMember(player);
return ReturnType.SUCCESS; return ReturnType.SUCCESS;

View File

@ -5,6 +5,7 @@ import com.songoda.ultimatemoderation.UltimateModeration;
import com.songoda.ultimatemoderation.punish.Punishment; import com.songoda.ultimatemoderation.punish.Punishment;
import com.songoda.ultimatemoderation.punish.PunishmentType; import com.songoda.ultimatemoderation.punish.PunishmentType;
import com.songoda.ultimatemoderation.utils.Methods; import com.songoda.ultimatemoderation.utils.Methods;
import com.songoda.ultimatemoderation.utils.VaultPermissions;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -53,7 +54,7 @@ public class CommandWarn extends AbstractCommand {
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }
if (sender instanceof Player && player.getPlayer().hasPermission("um.warning.exempt")) { if (sender instanceof Player && VaultPermissions.hasPermission(Bukkit.getWorlds().get(0).getName(), player, "um.warning.exempt")) {
instance.getLocale().newMessage("You cannot warn that player.").sendPrefixedMessage(sender); instance.getLocale().newMessage("You cannot warn that player.").sendPrefixedMessage(sender);
return ReturnType.FAILURE; return ReturnType.FAILURE;
} }

View File

@ -1,11 +1,11 @@
package com.songoda.ultimatemoderation.gui; package com.songoda.ultimatemoderation.gui;
import com.songoda.core.compatibility.ServerVersion; import com.songoda.core.compatibility.ServerVersion;
import com.songoda.core.gui.AnvilGui;
import com.songoda.ultimatemoderation.UltimateModeration; import com.songoda.ultimatemoderation.UltimateModeration;
import com.songoda.ultimatemoderation.punish.PunishmentType; 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.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;
@ -28,10 +28,19 @@ public class GUIPlayers extends AbstractGUI {
private int page = 0; private int page = 0;
private Online currentOnline = Online.ONLINE; private Online currentOnline = Online.ONLINE;
private List<UUID> players = new ArrayList<>();
public GUIPlayers(UltimateModeration plugin, Player player) { public GUIPlayers(UltimateModeration plugin, Player player) {
super(player); super(player);
this.plugin = plugin; this.plugin = plugin;
for (Player p : Bukkit.getOnlinePlayers())
players.add(p.getUniqueId());
for (UUID uuid : plugin.getPunishmentManager().getPunishments().keySet()) {
if (Bukkit.getOfflinePlayer(uuid).isOnline()) continue;
players.add(uuid);
}
init(plugin.getLocale().getMessage("gui.players.title").getMessage(), 54); init(plugin.getLocale().getMessage("gui.players.title").getMessage(), 54);
runTask(); runTask();
} }
@ -42,27 +51,16 @@ public class GUIPlayers extends AbstractGUI {
resetClickables(); resetClickables();
registerClickables(); registerClickables();
List<UUID> toUse = players.stream()
int numNotes = Bukkit.getOnlinePlayers().size(); .filter(u -> currentOnline == Online.BOTH
int maxPage = (int) Math.floor(numNotes / 36.0); || currentOnline == Online.ONLINE && Bukkit.getOfflinePlayer(u).isOnline()
|| currentOnline == Online.OFFLINE && !Bukkit.getOfflinePlayer(u).isOnline())
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());
int numNotes = toUse.size();
int maxPage = (int) Math.floor(numNotes / 36.0);
if (page != 0) { if (page != 0) {
createButton(46, Material.ARROW, plugin.getLocale().getMessage("gui.general.previous").getMessage()); createButton(46, Material.ARROW, plugin.getLocale().getMessage("gui.general.previous").getMessage());
registerClickable(46, ((player1, inventory1, cursor, slot, type) -> { registerClickable(46, ((player1, inventory1, cursor, slot, type) -> {
@ -79,8 +77,8 @@ public class GUIPlayers extends AbstractGUI {
})); }));
} }
for (int i = 0; i < players.size(); i++) { for (int i = 0; i < toUse.size(); i++) {
OfflinePlayer pl = Bukkit.getOfflinePlayer(players.get(i)); OfflinePlayer pl = Bukkit.getOfflinePlayer(toUse.get(i));
PlayerPunishData playerPunishData = plugin.getPunishmentManager().getPlayer(pl); PlayerPunishData playerPunishData = plugin.getPunishmentManager().getPlayer(pl);
@ -164,7 +162,8 @@ public class GUIPlayers extends AbstractGUI {
protected void registerClickables() { protected void registerClickables() {
registerClickable(46, ((player1, inventory1, cursor, slot, type) -> { registerClickable(46, ((player1, inventory1, cursor, slot, type) -> {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event -> { AnvilGui gui = new AnvilGui(player1);
gui.setAction(event -> {
List<UUID> players = new ArrayList<>(plugin.getPunishmentManager().getPunishments().keySet()); List<UUID> players = new ArrayList<>(plugin.getPunishmentManager().getPunishments().keySet());
for (Player player : Bukkit.getOnlinePlayers()) { for (Player player : Bukkit.getOnlinePlayers()) {
@ -172,10 +171,12 @@ public class GUIPlayers extends AbstractGUI {
players.add(player.getUniqueId()); players.add(player.getUniqueId());
} }
List<UUID> found = players.stream().filter(uuid -> Bukkit.getOfflinePlayer(uuid).getName().equalsIgnoreCase(event.getName())).collect(Collectors.toList()); List<UUID> found = players.stream().filter(uuid -> Bukkit.getOfflinePlayer(uuid).getName().toLowerCase().contains(gui.getInputText().toLowerCase())).collect(Collectors.toList());
if (found.size() == 1) { if (found.size() >= 1) {
new GUIPlayer(plugin, Bukkit.getOfflinePlayer(found.get(0)), player); this.players = found;
constructGUI();
player.openInventory(this.inventory);
} else { } else {
plugin.getLocale().getMessage("gui.players.nonefound").sendMessage(player); plugin.getLocale().getMessage("gui.players.nonefound").sendMessage(player);
} }
@ -187,8 +188,8 @@ public class GUIPlayers extends AbstractGUI {
meta.setDisplayName(plugin.getLocale().getMessage("gui.players.name").getMessage()); meta.setDisplayName(plugin.getLocale().getMessage("gui.players.name").getMessage());
item.setItemMeta(meta); item.setItemMeta(meta);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, item); gui.setInput(item);
gui.open(); plugin.getGuiManager().showGUI(player, gui);
})); }));
registerClickable(47, ((player1, inventory1, cursor, slot, type) -> { registerClickable(47, ((player1, inventory1, cursor, slot, type) -> {

View File

@ -30,7 +30,7 @@ public class StaffChannel {
if (members.contains(player.getUniqueId())) return; if (members.contains(player.getUniqueId())) return;
messageAll(UltimateModeration.getInstance().getLocale() messageAll(UltimateModeration.getInstance().getLocale()
.getMessage("event.staffchat.alljoin") .getMessage("event.staffchat.alljoin")
.processPlaceholder("player", player.getName()).getMessage()); .processPlaceholder("player", player.getName()).getMessage(), player);
UltimateModeration.getInstance().getStaffChatManager().getChats().values().stream().forEach(members1 -> { UltimateModeration.getInstance().getStaffChatManager().getChats().values().stream().forEach(members1 -> {
if (members1.listMembers().contains(player.getUniqueId())) { if (members1.listMembers().contains(player.getUniqueId())) {
@ -47,7 +47,7 @@ public class StaffChannel {
members.remove(player.getUniqueId()); members.remove(player.getUniqueId());
messageAll(UltimateModeration.getInstance().getLocale() messageAll(UltimateModeration.getInstance().getLocale()
.getMessage("event.staffchat.allleave") .getMessage("event.staffchat.allleave")
.processPlaceholder("player", player.getName()).getMessage()); .processPlaceholder("player", player.getName()).getMessage(), player);
} }
public void processMessage(String message, Player player) { public void processMessage(String message, Player player) {
@ -60,8 +60,13 @@ public class StaffChannel {
} }
public void messageAll(String message) { public void messageAll(String message) {
messageAll(message, null);
}
public void messageAll(String message, Player exempt) {
chatLog.add(message); chatLog.add(message);
for (Player player : Bukkit.getOnlinePlayers()) { for (Player player : Bukkit.getOnlinePlayers()) {
if (exempt != null && player == exempt) continue;
if (!members.contains(player.getUniqueId()) && !player.hasPermission("um.staffchat.spy")) continue; if (!members.contains(player.getUniqueId()) && !player.hasPermission("um.staffchat.spy")) continue;
player.sendMessage(Methods.formatText(message)); player.sendMessage(Methods.formatText(message));
} }