Fixed issue where leaving the server while entering an input would cause item to dupe on rejoin, also clear titles on join

Took 8 minutes
This commit is contained in:
Kiran Hart 2022-12-13 17:19:02 -05:00
parent 5e875e7081
commit ff11baf719
No known key found for this signature in database
GPG Key ID: 5F36C7BC79D3EBC3
2 changed files with 19 additions and 8 deletions

View File

@ -32,6 +32,7 @@ import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.scheduler.BukkitTask; import org.bukkit.scheduler.BukkitTask;
@ -77,9 +78,7 @@ public abstract class Input implements Listener, Runnable {
ActionBar.sendActionBar(this.player, actionBar); ActionBar.sendActionBar(this.player, actionBar);
} }
@EventHandler( @EventHandler(priority = EventPriority.LOWEST)
priority = EventPriority.LOWEST
)
public void onChat(AsyncPlayerChatEvent e) { public void onChat(AsyncPlayerChatEvent e) {
if (e.getPlayer().equals(this.player)) { if (e.getPlayer().equals(this.player)) {
if (ChatColor.stripColor(e.getMessage()).equals(Settings.TITLE_INPUT_CANCEL_WORD.getString())) { if (ChatColor.stripColor(e.getMessage()).equals(Settings.TITLE_INPUT_CANCEL_WORD.getString())) {
@ -92,6 +91,13 @@ public abstract class Input implements Listener, Runnable {
} }
} }
@EventHandler(priority = EventPriority.LOWEST)
public void onCommandExecute(PlayerCommandPreprocessEvent event) {
if (event.getPlayer().equals(this.player)) {
event.setCancelled(true);
}
}
@EventHandler @EventHandler
public void close(PlayerQuitEvent e) { public void close(PlayerQuitEvent e) {
if (e.getPlayer().equals(this.player)) { if (e.getPlayer().equals(this.player)) {

View File

@ -30,6 +30,7 @@ import ca.tweetzy.core.compatibility.XMaterial;
import ca.tweetzy.core.utils.PlayerUtils; import ca.tweetzy.core.utils.PlayerUtils;
import ca.tweetzy.core.utils.TextUtils; import ca.tweetzy.core.utils.TextUtils;
import ca.tweetzy.core.utils.nms.NBTEditor; import ca.tweetzy.core.utils.nms.NBTEditor;
import ca.tweetzy.flight.comp.Titles;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@ -78,6 +79,9 @@ public class PlayerListeners implements Listener {
public void onPlayerJoin(PlayerJoinEvent e) { public void onPlayerJoin(PlayerJoinEvent e) {
final Player player = e.getPlayer(); final Player player = e.getPlayer();
final AuctionHouse instance = AuctionHouse.getInstance(); final AuctionHouse instance = AuctionHouse.getInstance();
Titles.sendTitle(player, 1, 1, 1, " ", " ");
instance.getAuctionPlayerManager().addPlayer(player); instance.getAuctionPlayerManager().addPlayer(player);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(AuctionHouse.getInstance(), () -> { Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(AuctionHouse.getInstance(), () -> {
@ -93,9 +97,11 @@ public class PlayerListeners implements Listener {
final Player player = e.getPlayer(); final Player player = e.getPlayer();
final AuctionHouse instance = AuctionHouse.getInstance(); final AuctionHouse instance = AuctionHouse.getInstance();
if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) != null) if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()) != null) if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()).getItemBeingListed() != null) {
if (instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()).getItemBeingListed() != null)
player.getInventory().addItem(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()).getItemBeingListed()); player.getInventory().addItem(instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()).getItemBeingListed());
instance.getAuctionPlayerManager().getPlayer(player.getUniqueId()).setItemBeingListed(null);
}
instance.getAuctionPlayerManager().getSellHolding().remove(player.getUniqueId()); instance.getAuctionPlayerManager().getSellHolding().remove(player.getUniqueId());
@ -143,8 +149,7 @@ public class PlayerListeners implements Listener {
final Player player = e.getPlayer(); final Player player = e.getPlayer();
final ItemStack heldItem = PlayerHelper.getHeldItem(player); final ItemStack heldItem = PlayerHelper.getHeldItem(player);
if (heldItem == null || (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK)) if (heldItem == null || (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK)) return;
return;
if (heldItem.getType() == XMaterial.AIR.parseMaterial()) return; if (heldItem.getType() == XMaterial.AIR.parseMaterial()) return;
if (!BundleUtil.isBundledItem(heldItem)) return; if (!BundleUtil.isBundledItem(heldItem)) return;
e.setCancelled(true); e.setCancelled(true);