Skip to content

Commit aae8a0d

Browse files
committed
(fix) reset arm on item change
1 parent 64d9ea0 commit aae8a0d

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/main/java/cat/nyaa/ukit/xpstore/XpStoreFunction.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import cat.nyaa.ukit.utils.SubCommandExecutor;
66
import cat.nyaa.ukit.utils.SubTabCompleter;
77
import cat.nyaa.ukit.utils.Utils;
8-
import io.papermc.paper.event.player.PlayerInventorySlotChangeEvent;
98
import land.melon.lab.simplelanguageloader.utils.ItemUtils;
109
import land.melon.lab.simplelanguageloader.utils.Pair;
1110
import org.bukkit.Bukkit;
@@ -20,6 +19,7 @@
2019
import org.bukkit.event.block.Action;
2120
import org.bukkit.event.entity.ProjectileHitEvent;
2221
import org.bukkit.event.player.PlayerInteractEvent;
22+
import org.bukkit.event.player.PlayerItemHeldEvent;
2323
import org.bukkit.event.player.PlayerQuitEvent;
2424
import org.bukkit.inventory.ItemStack;
2525
import org.bukkit.inventory.meta.ItemMeta;
@@ -292,6 +292,7 @@ public void onExpBottleHit(ProjectileHitEvent event) {
292292

293293
@EventHandler
294294
public void onRightClickBottle(PlayerInteractEvent event) {
295+
if (!pluginInstance.config.xpStoreConfig.enableQuickTake) return;
295296
if (event.getPlayer().isSneaking()) return;
296297
if (!List.of(Action.RIGHT_CLICK_BLOCK, Action.RIGHT_CLICK_AIR).contains(event.getAction()))
297298
return;
@@ -300,6 +301,10 @@ public void onRightClickBottle(PlayerInteractEvent event) {
300301
if (!isExpContainer(item)) return;
301302
event.setCancelled(true);
302303

304+
var itemAmount = item.getAmount();
305+
var amountContain = getExpContained(item);
306+
if (amountContain == 0) return;
307+
303308
var timeNow = System.currentTimeMillis();
304309
var expireTime = quickTakeArmMap.getOrDefault(event.getPlayer().getUniqueId(), 0L);
305310
quickTakeArmMap.put(event.getPlayer().getUniqueId(), timeNow + pluginInstance.config.xpStoreConfig.quickTakeArmTimeInMillisecond);
@@ -308,8 +313,6 @@ public void onRightClickBottle(PlayerInteractEvent event) {
308313
return;
309314
}
310315

311-
var itemAmount = item.getAmount();
312-
var amountContain = getExpContained(item);
313316
// amountContain * quickTakeRatio or quickTakeMinimumAmount if amountContain enough, or take all at once
314317
var amountPreference = Objects.requireNonNullElse(getQuickTakePreference(item), getDefaultMinimumTakeAmount(amountContain));
315318
var amountTake = Math.min(amountContain, amountPreference);
@@ -332,7 +335,7 @@ public void onPlayerQuit(PlayerQuitEvent event) {
332335
}
333336

334337
@EventHandler
335-
public void onPlayerSwitchItem(PlayerInventorySlotChangeEvent event) {
338+
public void onPlayerSwitchItem(PlayerItemHeldEvent event) {
336339
quickTakeArmMap.remove(event.getPlayer().getUniqueId());
337340
}
338341

0 commit comments

Comments
 (0)