7 changed files with 24 additions and 28 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ dependencies {
compileOnly("com.gitlab.ruany:LiteBansAPI:0.6.1") // move to proxy compileOnly("com.gitlab.ruany:LiteBansAPI:0.6.1") // move to proxy
compileOnly("org.apache.commons:commons-lang3:3.17.0") // needs an alternative, already removed from upstream api and will be removed in server compileOnly("org.apache.commons:commons-lang3:3.17.0") // needs an alternative, already removed from upstream api and will be removed in server
compileOnly("net.luckperms:api:5.5") // Luckperms compileOnly("net.luckperms:api:5.5") // Luckperms
implementation("com.alttd.inventory_gui:InventoryGUI:1.1.1-SNAPSHOT") implementation("com.alttd.inventory_gui:InventoryGUI:1.1.5-SNAPSHOT")
} }
tasks { tasks {
@@ -116,7 +116,7 @@ public class Nicknames implements CommandExecutor, TabCompleter {
sender.sendRichMessage(helpMessage(sender, HelpType.REVIEW)); sender.sendRichMessage(helpMessage(sender, HelpType.REVIEW));
return; return;
} }
NicknamesGui nicknamesGui = new NicknamesGui(); NicknamesGui nicknamesGui = new NicknamesGui(player);
ChatPlugin.getInstance().getServer().getPluginManager().registerEvents(nicknamesGui, ChatPlugin.getInstance()); ChatPlugin.getInstance().getServer().getPluginManager().registerEvents(nicknamesGui, ChatPlugin.getInstance());
nicknamesGui.openInventory(player); nicknamesGui.openInventory(player);
} }
@@ -5,6 +5,7 @@ import com.alttd.chat.config.Config;
import com.alttd.chat.database.Queries; import com.alttd.chat.database.Queries;
import com.alttd.chat.events.NickEvent; import com.alttd.chat.events.NickEvent;
import com.alttd.chat.objects.Nick; import com.alttd.chat.objects.Nick;
import com.alttd.chat.util.ALogger;
import com.alttd.chat.util.Utility; import com.alttd.chat.util.Utility;
import com.alttd.inventory_gui.click.GuiItem; import com.alttd.inventory_gui.click.GuiItem;
import com.alttd.inventory_gui.gui.InventoryGui; import com.alttd.inventory_gui.gui.InventoryGui;
@@ -37,19 +38,17 @@ public class NicknamesGui implements Listener {
private final ChatPlugin plugin = ChatPlugin.getInstance(); private final ChatPlugin plugin = ChatPlugin.getInstance();
private final InventoryGui nicknamesGui; private final InventoryGui nicknamesGui;
//Inventory is shared between GUI users so actions one person does are replicated to the other GUI's public NicknamesGui(Player player) {
public NicknamesGui() {
nicknamesGui = InventoryGui.builder() nicknamesGui = InventoryGui.builder()
.plugin(plugin) .plugin(plugin)
.title(Component.text("Nicknames GUI")) .title(Component.text("Nicknames GUI"))
.rows(6) .rows(6)
.build(); .build();
currentPage = 1; currentPage = 1;
setItems(currentPage); setItems(currentPage, player);
} }
//TODO create all pages and share those between instances so page changes don't affect others, but everything is still synchronized public void setItems(int currentPage, Player player) {
public void setItems(int currentPage) {
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
@@ -65,8 +64,10 @@ public class NicknamesGui implements Listener {
ItemStack playerSkull = createPlayerSkull(nick, Config.NICK_ITEM_LORE); ItemStack playerSkull = createPlayerSkull(nick, Config.NICK_ITEM_LORE);
nicknamesGui.getRoot().setItem(i % 27, GuiItem.clickable(playerSkull, inventoryClickEvent -> nicknamesGui.getRoot().setItem(i % 27, GuiItem.clickable(playerSkull, inventoryClickEvent ->
handleInventoryClick(nick, inventoryClickEvent, miniMessage, playerSkull))); handleInventoryClick(nick, inventoryClickEvent, miniMessage, playerSkull)));
ALogger.info("Added nick " + i + " to gui: " + nick.getUuid());
i++; i++;
} else { } else {
ALogger.info("Reached end of nicknames gui page");
hasNextPage = true; hasNextPage = true;
break; break;
} }
@@ -77,7 +78,7 @@ public class NicknamesGui implements Listener {
ItemStack itemStack = createGuiItem(Material.PAPER, "§bPrevious page", ItemStack itemStack = createGuiItem(Material.PAPER, "§bPrevious page",
"§aCurrent page: %page%".replace("%page%", String.valueOf(currentPage)), "§aCurrent page: %page%".replace("%page%", String.valueOf(currentPage)),
"§aPrevious page: %previousPage%".replace("%previousPage%", String.valueOf(currentPage - 1))); "§aPrevious page: %previousPage%".replace("%previousPage%", String.valueOf(currentPage - 1)));
GuiItem previousPage = GuiItem.clickable(itemStack, e -> setItems(currentPage - 1)); GuiItem previousPage = GuiItem.clickable(itemStack, e -> setItems(currentPage - 1, player));
nicknamesGui.getRoot().setItem(28, previousPage); nicknamesGui.getRoot().setItem(28, previousPage);
} }
@@ -85,20 +86,18 @@ public class NicknamesGui implements Listener {
ItemStack itemStack = createGuiItem(Material.PAPER, "§bNext page", ItemStack itemStack = createGuiItem(Material.PAPER, "§bNext page",
"§aCurrent page: %page%".replace("%page%", String.valueOf(currentPage)), "§aCurrent page: %page%".replace("%page%", String.valueOf(currentPage)),
"§aNext page: §b%nextPage%".replace("%nextPage%", String.valueOf(currentPage + 1))); "§aNext page: §b%nextPage%".replace("%nextPage%", String.valueOf(currentPage + 1)));
GuiItem nextPage = GuiItem.clickable(itemStack, e -> setItems(currentPage + 1)); GuiItem nextPage = GuiItem.clickable(itemStack, e -> setItems(currentPage + 1, player));
nicknamesGui.getRoot().setItem(36, nextPage); nicknamesGui.getRoot().setItem(36, nextPage);
} }
nicknamesGui.render(player);
} }
}.runTaskAsynchronously(ChatPlugin.getInstance()); }.runTaskAsynchronously(ChatPlugin.getInstance());
} }
private static void handleInventoryClick(Nick nick, InventoryClickEvent inventoryClickEvent, MiniMessage miniMessage, ItemStack playerSkull) { private void handleInventoryClick(Nick nick, InventoryClickEvent inventoryClickEvent, MiniMessage miniMessage, ItemStack playerSkull) {
final Player playerWhoClicked = (Player) inventoryClickEvent.getWhoClicked(); final Player playerWhoClicked = (Player) inventoryClickEvent.getWhoClicked();
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(nick.getUuid()); OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(nick.getUuid());
if (offlinePlayer.getName() == null) {
playerWhoClicked.sendRichMessage(Config.NICK_PLAYER_NOT_ONLINE, Placeholder.parsed("player", getOfflinePlayerName(offlinePlayer)));
return;
}
Component offlinePlayerName = miniMessage.deserialize(getOfflinePlayerName(offlinePlayer)); Component offlinePlayerName = miniMessage.deserialize(getOfflinePlayerName(offlinePlayer));
if (!nick.hasRequest()) { if (!nick.hasRequest()) {
playerWhoClicked.sendRichMessage(Config.NICK_ALREADY_HANDLED, playerWhoClicked.sendRichMessage(Config.NICK_ALREADY_HANDLED,
@@ -113,7 +112,7 @@ public class NicknamesGui implements Listener {
//TODO what do we do no click? //TODO what do we do no click?
} }
private static void handleRightClickPlayerSkull(Nick nick, InventoryClickEvent inventoryClickEvent, OfflinePlayer offlinePlayer, Player playerWhoClicked, Component offlinePlayerName, ItemStack playerSkull) { private void handleRightClickPlayerSkull(Nick nick, InventoryClickEvent inventoryClickEvent, OfflinePlayer offlinePlayer, Player playerWhoClicked, Component offlinePlayerName, ItemStack playerSkull) {
Queries.denyNewNickname(nick.getUuid()); Queries.denyNewNickname(nick.getUuid());
String newNick = nick.getNewNick(); String newNick = nick.getNewNick();
@@ -154,10 +153,10 @@ public class NicknamesGui implements Listener {
ItemStack completedNickRequestItem = createCompletedNickRequestItem(offlinePlayerName, playerSkull); ItemStack completedNickRequestItem = createCompletedNickRequestItem(offlinePlayerName, playerSkull);
inventoryClickEvent.getInventory().setItem(inventoryClickEvent.getSlot(), completedNickRequestItem); inventoryClickEvent.getInventory().setItem(inventoryClickEvent.getSlot(), completedNickRequestItem);
playerWhoClicked.updateInventory(); nicknamesGui.render(playerWhoClicked);
} }
private static void handleLeftClickPlayerSkull(Nick nick, InventoryClickEvent inventoryClickEvent, OfflinePlayer offlinePlayer, Player playerWhoClicked, Component offlinePlayerName, ItemStack playerSkull) { private void handleLeftClickPlayerSkull(Nick nick, InventoryClickEvent inventoryClickEvent, OfflinePlayer offlinePlayer, Player playerWhoClicked, Component offlinePlayerName, ItemStack playerSkull) {
Queries.acceptNewNickname(nick.getUuid(), nick.getNewNick()); Queries.acceptNewNickname(nick.getUuid(), nick.getNewNick());
String newNick = nick.getNewNick(); String newNick = nick.getNewNick();
@@ -191,7 +190,7 @@ public class NicknamesGui implements Listener {
ItemStack completedNickRequestItem = createCompletedNickRequestItem(offlinePlayerName, playerSkull); ItemStack completedNickRequestItem = createCompletedNickRequestItem(offlinePlayerName, playerSkull);
inventoryClickEvent.getInventory().setItem(inventoryClickEvent.getSlot(), completedNickRequestItem); inventoryClickEvent.getInventory().setItem(inventoryClickEvent.getSlot(), completedNickRequestItem);
playerWhoClicked.updateInventory(); nicknamesGui.render(playerWhoClicked);
} }
private static ItemStack createCompletedNickRequestItem(Component offlinePlayerName, ItemStack playerSkull) { private static ItemStack createCompletedNickRequestItem(Component offlinePlayerName, ItemStack playerSkull) {
+2 -3
View File
@@ -9,13 +9,12 @@ val nexusPass = providers.gradleProperty("alttdSnapshotPassword").get()
dependencyResolutionManagement { dependencyResolutionManagement {
repositories { repositories {
// mavenLocal() mavenLocal()
mavenCentral() mavenCentral()
maven("https://repo.alttd.com/snapshots") // Altitude - Galaxy maven("https://repo.alttd.com/snapshots") // Altitude - Galaxy
maven("https://oss.sonatype.org/content/groups/public/") // Adventure maven("https://oss.sonatype.org/content/groups/public/") // Adventure
maven("https://oss.sonatype.org/content/repositories/snapshots/") // Minimessage maven("https://oss.sonatype.org/content/repositories/snapshots/") // Minimessage
maven("https://nexus.velocitypowered.com/repository/") // Velocity maven("https://repo.papermc.io/repository/maven-public/")
maven("https://nexus.velocitypowered.com/repository/maven-public/") // Velocity
maven("https://repo.spongepowered.org/maven") // Configurate maven("https://repo.spongepowered.org/maven") // Configurate
maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") // Papi maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") // Papi
maven("https://jitpack.io") maven("https://jitpack.io")
+2 -2
View File
@@ -5,8 +5,8 @@ plugins {
dependencies { dependencies {
implementation(project(":api")) // API implementation(project(":api")) // API
compileOnly("com.velocitypowered:velocity-api:3.1.0") compileOnly("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
annotationProcessor("com.velocitypowered:velocity-api:3.1.0") annotationProcessor("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
implementation("mysql:mysql-connector-java:8.0.33") // mysql implementation("mysql:mysql-connector-java:8.0.33") // mysql
implementation("org.spongepowered", "configurate-yaml", "4.2.0") implementation("org.spongepowered", "configurate-yaml", "4.2.0")
compileOnly("net.kyori:adventure-text-minimessage:4.23.0") compileOnly("net.kyori:adventure-text-minimessage:4.23.0")
@@ -5,7 +5,6 @@ import com.alttd.chat.util.Utility;
import com.alttd.velocitychat.VelocityChat; import com.alttd.velocitychat.VelocityChat;
import com.alttd.velocitychat.events.GlobalAdminChatEvent; import com.alttd.velocitychat.events.GlobalAdminChatEvent;
import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.event.PostOrder;
import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.ComponentLike; import net.kyori.adventure.text.ComponentLike;
@@ -19,7 +18,7 @@ public class ChatListener {
plugin = VelocityChat.getPlugin(); plugin = VelocityChat.getPlugin();
} }
@Subscribe(order = PostOrder.FIRST) @Subscribe(priority = 0)
public void onGlobalStaffChat(GlobalAdminChatEvent event) { public void onGlobalStaffChat(GlobalAdminChatEvent event) {
String senderName = Config.CONSOLENAME; String senderName = Config.CONSOLENAME;
String serverName = "Altitude"; String serverName = "Altitude";
@@ -11,7 +11,6 @@ import com.alttd.velocitychat.VelocityChat;
import com.alttd.velocitychat.commands.vote_to_mute.ActiveVoteToMute; import com.alttd.velocitychat.commands.vote_to_mute.ActiveVoteToMute;
import com.alttd.velocitychat.data.ServerWrapper; import com.alttd.velocitychat.data.ServerWrapper;
import com.alttd.velocitychat.handlers.ServerHandler; import com.alttd.velocitychat.handlers.ServerHandler;
import com.velocitypowered.api.event.PostOrder;
import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.DisconnectEvent; import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.connection.LoginEvent; import com.velocitypowered.api.event.connection.LoginEvent;
@@ -34,7 +33,7 @@ import java.util.concurrent.TimeUnit;
public class ProxyPlayerListener { public class ProxyPlayerListener {
@Subscribe(order = PostOrder.FIRST) @Subscribe(priority = 0)
public void onPlayerLogin(LoginEvent event) { public void onPlayerLogin(LoginEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
UUID uuid = player.getUniqueId(); UUID uuid = player.getUniqueId();
@@ -57,7 +56,7 @@ public class ProxyPlayerListener {
ServerHandler.addPlayerUUID(player.getUsername(), uuid); ServerHandler.addPlayerUUID(player.getUsername(), uuid);
} }
@Subscribe(order = PostOrder.LAST) @Subscribe(priority = 4)
public void afterPlayerLogin(ServerPostConnectEvent event) { public void afterPlayerLogin(ServerPostConnectEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
RegisteredServer previousServer = event.getPreviousServer(); RegisteredServer previousServer = event.getPreviousServer();