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("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
implementation("com.alttd.inventory_gui:InventoryGUI:1.1.1-SNAPSHOT")
implementation("com.alttd.inventory_gui:InventoryGUI:1.1.5-SNAPSHOT")
}
tasks {
@@ -116,7 +116,7 @@ public class Nicknames implements CommandExecutor, TabCompleter {
sender.sendRichMessage(helpMessage(sender, HelpType.REVIEW));
return;
}
NicknamesGui nicknamesGui = new NicknamesGui();
NicknamesGui nicknamesGui = new NicknamesGui(player);
ChatPlugin.getInstance().getServer().getPluginManager().registerEvents(nicknamesGui, ChatPlugin.getInstance());
nicknamesGui.openInventory(player);
}
@@ -5,6 +5,7 @@ import com.alttd.chat.config.Config;
import com.alttd.chat.database.Queries;
import com.alttd.chat.events.NickEvent;
import com.alttd.chat.objects.Nick;
import com.alttd.chat.util.ALogger;
import com.alttd.chat.util.Utility;
import com.alttd.inventory_gui.click.GuiItem;
import com.alttd.inventory_gui.gui.InventoryGui;
@@ -37,19 +38,17 @@ public class NicknamesGui implements Listener {
private final ChatPlugin plugin = ChatPlugin.getInstance();
private final InventoryGui nicknamesGui;
//Inventory is shared between GUI users so actions one person does are replicated to the other GUI's
public NicknamesGui() {
public NicknamesGui(Player player) {
nicknamesGui = InventoryGui.builder()
.plugin(plugin)
.title(Component.text("Nicknames GUI"))
.rows(6)
.build();
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) {
public void setItems(int currentPage, Player player) {
new BukkitRunnable() {
@Override
public void run() {
@@ -65,8 +64,10 @@ public class NicknamesGui implements Listener {
ItemStack playerSkull = createPlayerSkull(nick, Config.NICK_ITEM_LORE);
nicknamesGui.getRoot().setItem(i % 27, GuiItem.clickable(playerSkull, inventoryClickEvent ->
handleInventoryClick(nick, inventoryClickEvent, miniMessage, playerSkull)));
ALogger.info("Added nick " + i + " to gui: " + nick.getUuid());
i++;
} else {
ALogger.info("Reached end of nicknames gui page");
hasNextPage = true;
break;
}
@@ -77,7 +78,7 @@ public class NicknamesGui implements Listener {
ItemStack itemStack = createGuiItem(Material.PAPER, "§bPrevious page",
"§aCurrent page: %page%".replace("%page%", String.valueOf(currentPage)),
"§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);
}
@@ -85,20 +86,18 @@ public class NicknamesGui implements Listener {
ItemStack itemStack = createGuiItem(Material.PAPER, "§bNext page",
"§aCurrent page: %page%".replace("%page%", String.valueOf(currentPage)),
"§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.render(player);
}
}.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();
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));
if (!nick.hasRequest()) {
playerWhoClicked.sendRichMessage(Config.NICK_ALREADY_HANDLED,
@@ -113,7 +112,7 @@ public class NicknamesGui implements Listener {
//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());
String newNick = nick.getNewNick();
@@ -154,10 +153,10 @@ public class NicknamesGui implements Listener {
ItemStack completedNickRequestItem = createCompletedNickRequestItem(offlinePlayerName, playerSkull);
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());
String newNick = nick.getNewNick();
@@ -191,7 +190,7 @@ public class NicknamesGui implements Listener {
ItemStack completedNickRequestItem = createCompletedNickRequestItem(offlinePlayerName, playerSkull);
inventoryClickEvent.getInventory().setItem(inventoryClickEvent.getSlot(), completedNickRequestItem);
playerWhoClicked.updateInventory();
nicknamesGui.render(playerWhoClicked);
}
private static ItemStack createCompletedNickRequestItem(Component offlinePlayerName, ItemStack playerSkull) {
+2 -3
View File
@@ -9,13 +9,12 @@ val nexusPass = providers.gradleProperty("alttdSnapshotPassword").get()
dependencyResolutionManagement {
repositories {
// mavenLocal()
mavenLocal()
mavenCentral()
maven("https://repo.alttd.com/snapshots") // Altitude - Galaxy
maven("https://oss.sonatype.org/content/groups/public/") // Adventure
maven("https://oss.sonatype.org/content/repositories/snapshots/") // Minimessage
maven("https://nexus.velocitypowered.com/repository/") // Velocity
maven("https://nexus.velocitypowered.com/repository/maven-public/") // Velocity
maven("https://repo.papermc.io/repository/maven-public/")
maven("https://repo.spongepowered.org/maven") // Configurate
maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") // Papi
maven("https://jitpack.io")
+2 -2
View File
@@ -5,8 +5,8 @@ plugins {
dependencies {
implementation(project(":api")) // API
compileOnly("com.velocitypowered:velocity-api:3.1.0")
annotationProcessor("com.velocitypowered:velocity-api:3.1.0")
compileOnly("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
annotationProcessor("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
implementation("mysql:mysql-connector-java:8.0.33") // mysql
implementation("org.spongepowered", "configurate-yaml", "4.2.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.events.GlobalAdminChatEvent;
import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.event.PostOrder;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.ComponentLike;
@@ -19,7 +18,7 @@ public class ChatListener {
plugin = VelocityChat.getPlugin();
}
@Subscribe(order = PostOrder.FIRST)
@Subscribe(priority = 0)
public void onGlobalStaffChat(GlobalAdminChatEvent event) {
String senderName = Config.CONSOLENAME;
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.data.ServerWrapper;
import com.alttd.velocitychat.handlers.ServerHandler;
import com.velocitypowered.api.event.PostOrder;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.connection.LoginEvent;
@@ -34,7 +33,7 @@ import java.util.concurrent.TimeUnit;
public class ProxyPlayerListener {
@Subscribe(order = PostOrder.FIRST)
@Subscribe(priority = 0)
public void onPlayerLogin(LoginEvent event) {
Player player = event.getPlayer();
UUID uuid = player.getUniqueId();
@@ -57,7 +56,7 @@ public class ProxyPlayerListener {
ServerHandler.addPlayerUUID(player.getUsername(), uuid);
}
@Subscribe(order = PostOrder.LAST)
@Subscribe(priority = 4)
public void afterPlayerLogin(ServerPostConnectEvent event) {
Player player = event.getPlayer();
RegisteredServer previousServer = event.getPreviousServer();