Skip to content

Commit

Permalink
(fix) reset arm on item change
Browse files Browse the repository at this point in the history
  • Loading branch information
Lori3f6 committed Oct 1, 2024
1 parent 64d9ea0 commit aae8a0d
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions src/main/java/cat/nyaa/ukit/xpstore/XpStoreFunction.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import cat.nyaa.ukit.utils.SubCommandExecutor;
import cat.nyaa.ukit.utils.SubTabCompleter;
import cat.nyaa.ukit.utils.Utils;
import io.papermc.paper.event.player.PlayerInventorySlotChangeEvent;
import land.melon.lab.simplelanguageloader.utils.ItemUtils;
import land.melon.lab.simplelanguageloader.utils.Pair;
import org.bukkit.Bukkit;
Expand All @@ -20,6 +19,7 @@
import org.bukkit.event.block.Action;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerItemHeldEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
Expand Down Expand Up @@ -292,6 +292,7 @@ public void onExpBottleHit(ProjectileHitEvent event) {

@EventHandler
public void onRightClickBottle(PlayerInteractEvent event) {
if (!pluginInstance.config.xpStoreConfig.enableQuickTake) return;
if (event.getPlayer().isSneaking()) return;
if (!List.of(Action.RIGHT_CLICK_BLOCK, Action.RIGHT_CLICK_AIR).contains(event.getAction()))
return;
Expand All @@ -300,6 +301,10 @@ public void onRightClickBottle(PlayerInteractEvent event) {
if (!isExpContainer(item)) return;
event.setCancelled(true);

var itemAmount = item.getAmount();
var amountContain = getExpContained(item);
if (amountContain == 0) return;

var timeNow = System.currentTimeMillis();
var expireTime = quickTakeArmMap.getOrDefault(event.getPlayer().getUniqueId(), 0L);
quickTakeArmMap.put(event.getPlayer().getUniqueId(), timeNow + pluginInstance.config.xpStoreConfig.quickTakeArmTimeInMillisecond);
Expand All @@ -308,8 +313,6 @@ public void onRightClickBottle(PlayerInteractEvent event) {
return;
}

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

@EventHandler
public void onPlayerSwitchItem(PlayerInventorySlotChangeEvent event) {
public void onPlayerSwitchItem(PlayerItemHeldEvent event) {
quickTakeArmMap.remove(event.getPlayer().getUniqueId());
}

Expand Down

0 comments on commit aae8a0d

Please sign in to comment.