9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00

修复重复行为处理

This commit is contained in:
XiaoMoMi
2025-12-05 20:34:46 +08:00
parent 456dfb00bc
commit 35b63b1630
5 changed files with 8 additions and 5 deletions

View File

@@ -13,7 +13,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils;
import net.momirealms.craftengine.core.entity.furniture.*; import net.momirealms.craftengine.core.entity.furniture.*;
import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfig; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfig;
import net.momirealms.craftengine.core.entity.furniture.tick.FurnitureTicker; import net.momirealms.craftengine.core.entity.furniture.tick.FurnitureTicker;
import net.momirealms.craftengine.core.entity.furniture.tick.TickingFurniture;
import net.momirealms.craftengine.core.entity.furniture.tick.TickingFurnitureImpl; import net.momirealms.craftengine.core.entity.furniture.tick.TickingFurnitureImpl;
import net.momirealms.craftengine.core.plugin.config.Config; import net.momirealms.craftengine.core.plugin.config.Config;
import net.momirealms.craftengine.core.sound.SoundData; import net.momirealms.craftengine.core.sound.SoundData;

View File

@@ -3813,12 +3813,14 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes
if (cancellable.isCancelled()) { if (cancellable.isCancelled()) {
return; return;
} }
// 不处理调试棒 // 不处理调试棒
if (itemInHand.vanillaId().equals(ItemKeys.DEBUG_STICK)) { if (itemInHand.vanillaId().equals(ItemKeys.DEBUG_STICK)) {
return; return;
} }
// 已经有过交互了
if (serverPlayer.lastSuccessfulInteractionTick() == serverPlayer.gameTicks()) {
return;
}
// 必须从网络包层面处理,否则无法获取交互的具体实体 // 必须从网络包层面处理,否则无法获取交互的具体实体
if (serverPlayer.isSecondaryUseActive() && !itemInHand.isEmpty() && hitBox.config().canUseItemOn()) { if (serverPlayer.isSecondaryUseActive() && !itemInHand.isEmpty() && hitBox.config().canUseItemOn()) {
Optional<CustomItem<ItemStack>> optionalCustomItem = itemInHand.getCustomItem(); Optional<CustomItem<ItemStack>> optionalCustomItem = itemInHand.getCustomItem();

View File

@@ -21,7 +21,9 @@ templates:
conditions: conditions:
- type: expression - type: expression
expression: <arg:player.is_sneaking> expression: <arg:player.is_sneaking>
- type: "!has_item"
functions: functions:
- type: update_interaction_tick
- type: rotate_furniture - type: rotate_furniture
degree: 90 degree: 90
on-success: on-success:
@@ -47,9 +49,11 @@ templates:
conditions: conditions:
- type: expression - type: expression
expression: <arg:player.is_sneaking> expression: <arg:player.is_sneaking>
- type: "!has_item"
- type: "!match_furniture_variant" - type: "!match_furniture_variant"
variants: ${blacklist_variants:-null} variants: ${blacklist_variants:-null}
functions: functions:
- type: update_interaction_tick
- type: rotate_furniture - type: rotate_furniture
degree: 45 degree: 45
on-success: on-success:

View File

@@ -1,7 +1,6 @@
package net.momirealms.craftengine.core.entity.furniture; package net.momirealms.craftengine.core.entity.furniture;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import net.momirealms.craftengine.core.block.entity.tick.TickingBlockEntity;
import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorTypes; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorTypes;
import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfig; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfig;
import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigs; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigs;

View File

@@ -11,7 +11,6 @@ import net.momirealms.craftengine.core.util.Key;
import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.MiscUtils;
import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;