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-04 20:48:13 +08:00
parent 64a510d89d
commit be84b0292a
3 changed files with 21 additions and 2 deletions

View File

@@ -172,7 +172,7 @@ public class SimpleStorageBlockEntity extends BlockEntity {
public void updateOpenBlockState(boolean open) { public void updateOpenBlockState(boolean open) {
ImmutableBlockState state = super.world.getBlockStateAtIfLoaded(this.pos); ImmutableBlockState state = super.world.getBlockStateAtIfLoaded(this.pos);
if (state == null || state.behavior() != this.behavior) return; if (state == null) return;
SimpleStorageBlockBehavior behavior = state.behavior().getAs(SimpleStorageBlockBehavior.class).orElse(null); SimpleStorageBlockBehavior behavior = state.behavior().getAs(SimpleStorageBlockBehavior.class).orElse(null);
if (behavior == null) return; if (behavior == null) return;
Property<Boolean> property = behavior.openProperty(); Property<Boolean> property = behavior.openProperty();

View File

@@ -76,6 +76,7 @@ public class BukkitServerPlayer extends Player {
public static final Key SELECTED_LOCALE_KEY = Key.of("craftengine:locale"); public static final Key SELECTED_LOCALE_KEY = Key.of("craftengine:locale");
public static final Key ENTITY_CULLING_VIEW_DISTANCE_SCALE = Key.of("craftengine:entity_culling_view_distance_scale"); public static final Key ENTITY_CULLING_VIEW_DISTANCE_SCALE = Key.of("craftengine:entity_culling_view_distance_scale");
public static final Key ENABLE_ENTITY_CULLING = Key.of("craftengine:enable_entity_culling"); public static final Key ENABLE_ENTITY_CULLING = Key.of("craftengine:enable_entity_culling");
public static final Key ENABLE_FURNITURE_DEBUG = Key.of("craftengine:enable_furniture_debug");
private final BukkitCraftEngine plugin; private final BukkitCraftEngine plugin;
// connection state // connection state
@@ -153,6 +154,8 @@ public class BukkitServerPlayer extends Player {
private boolean enableEntityCulling; private boolean enableEntityCulling;
// 玩家眼睛所在位置 // 玩家眼睛所在位置
private Location eyeLocation; private Location eyeLocation;
// 是否启用家具调试
private boolean enableFurnitureDebug;
public BukkitServerPlayer(BukkitCraftEngine plugin, @Nullable Channel channel) { public BukkitServerPlayer(BukkitCraftEngine plugin, @Nullable Channel channel) {
this.channel = channel; this.channel = channel;
@@ -180,6 +183,7 @@ public class BukkitServerPlayer extends Player {
String locale = player.getPersistentDataContainer().get(KeyUtils.toNamespacedKey(SELECTED_LOCALE_KEY), PersistentDataType.STRING); String locale = player.getPersistentDataContainer().get(KeyUtils.toNamespacedKey(SELECTED_LOCALE_KEY), PersistentDataType.STRING);
Double scale = player.getPersistentDataContainer().get(KeyUtils.toNamespacedKey(ENTITY_CULLING_VIEW_DISTANCE_SCALE), PersistentDataType.DOUBLE); Double scale = player.getPersistentDataContainer().get(KeyUtils.toNamespacedKey(ENTITY_CULLING_VIEW_DISTANCE_SCALE), PersistentDataType.DOUBLE);
this.enableEntityCulling = Optional.ofNullable(player.getPersistentDataContainer().get(KeyUtils.toNamespacedKey(ENABLE_ENTITY_CULLING), PersistentDataType.BOOLEAN)).orElse(true); this.enableEntityCulling = Optional.ofNullable(player.getPersistentDataContainer().get(KeyUtils.toNamespacedKey(ENABLE_ENTITY_CULLING), PersistentDataType.BOOLEAN)).orElse(true);
this.enableFurnitureDebug = Optional.ofNullable(player.getPersistentDataContainer().get(KeyUtils.toNamespacedKey(ENABLE_FURNITURE_DEBUG), PersistentDataType.BOOLEAN)).orElse(false);
this.culling.setDistanceScale(Optional.ofNullable(scale).orElse(1.0)); this.culling.setDistanceScale(Optional.ofNullable(scale).orElse(1.0));
this.selectedLocale = TranslationManager.parseLocale(locale); this.selectedLocale = TranslationManager.parseLocale(locale);
this.trackedChunks = ConcurrentLong2ReferenceChainedHashTable.createWithCapacity(512, 0.5f); this.trackedChunks = ConcurrentLong2ReferenceChainedHashTable.createWithCapacity(512, 0.5f);
@@ -1374,7 +1378,18 @@ public class BukkitServerPlayer extends Player {
@Override @Override
public boolean enableEntityCulling() { public boolean enableEntityCulling() {
return enableEntityCulling; return this.enableEntityCulling;
}
@Override
public void setEnableFurnitureDebug(boolean enable) {
this.enableFurnitureDebug = enable;
platformPlayer().getPersistentDataContainer().set(KeyUtils.toNamespacedKey(ENABLE_FURNITURE_DEBUG), PersistentDataType.BOOLEAN, enable);
}
@Override
public boolean enableFurnitureDebug() {
return enableFurnitureDebug;
} }
@Override @Override

View File

@@ -198,6 +198,10 @@ public abstract class Player extends AbstractEntity implements NetWorkUser {
public abstract boolean enableEntityCulling(); public abstract boolean enableEntityCulling();
public abstract boolean enableFurnitureDebug();
public abstract void setEnableFurnitureDebug(boolean enableFurnitureDebug);
public abstract void giveExperiencePoints(int xpPoints); public abstract void giveExperiencePoints(int xpPoints);
public abstract void giveExperienceLevels(int levels); public abstract void giveExperienceLevels(int levels);