diff --git a/pom.xml b/pom.xml
index f23f950..2e75562 100644
--- a/pom.xml
+++ b/pom.xml
@@ -263,13 +263,13 @@
net.momirealms
craft-engine-core
- 0.0.58
+ 26.5
provided
net.momirealms
craft-engine-bukkit
- 0.0.58
+ 26.5
provided
diff --git a/src/main/java/fi/septicuss/tooltips/managers/integration/impl/craftengine/CraftEngineFurnitureProvider.java b/src/main/java/fi/septicuss/tooltips/managers/integration/impl/craftengine/CraftEngineFurnitureProvider.java
index 5a6216e..c7a7d55 100644
--- a/src/main/java/fi/septicuss/tooltips/managers/integration/impl/craftengine/CraftEngineFurnitureProvider.java
+++ b/src/main/java/fi/septicuss/tooltips/managers/integration/impl/craftengine/CraftEngineFurnitureProvider.java
@@ -2,28 +2,57 @@
import fi.septicuss.tooltips.managers.integration.providers.FurnitureProvider;
import fi.septicuss.tooltips.managers.integration.wrappers.FurnitureWrapper;
+import net.momirealms.craftengine.bukkit.api.CraftEngineBlocks;
import net.momirealms.craftengine.bukkit.api.CraftEngineFurniture;
import net.momirealms.craftengine.bukkit.entity.furniture.BukkitFurniture;
+import net.momirealms.craftengine.core.block.BlockDefinition;
+import net.momirealms.craftengine.core.block.ImmutableBlockState;
+import net.momirealms.craftengine.core.block.setting.BlockSettingsModifier;
+import net.momirealms.craftengine.core.block.setting.BlockSettingsModifierType;
+import net.momirealms.craftengine.core.block.setting.BlockSettingsModifiers;
+import net.momirealms.craftengine.core.entity.furniture.FurnitureDefinition;
+import net.momirealms.craftengine.core.entity.furniture.setting.FurnitureSettingsModifier;
+import net.momirealms.craftengine.core.entity.furniture.setting.FurnitureSettingsModifierType;
+import net.momirealms.craftengine.core.entity.furniture.setting.FurnitureSettingsModifiers;
+import net.momirealms.craftengine.core.util.CustomDataType;
+import net.momirealms.craftengine.core.util.Key;
import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
import org.jetbrains.annotations.Nullable;
-
public class CraftEngineFurnitureProvider implements FurnitureProvider {
+ public static final CustomDataType FURNITURE_NAME_KEY = new CustomDataType<>();
+ public static final CustomDataType BLOCK_NAME_KEY = new CustomDataType<>();
+ public static final FurnitureSettingsModifierType FURNITURE_NAME = FurnitureSettingsModifiers.register(
+ Key.of("tooltips", "furniture_name"),
+ value -> settings -> settings.addCustomData(FURNITURE_NAME_KEY, value.getAsString())
+ );
+ public static final BlockSettingsModifierType BLOCK_NAME = BlockSettingsModifiers.register(
+ Key.of("tooltips", "block_name"),
+ value -> settings -> settings.addCustomData(BLOCK_NAME_KEY, value.getAsString())
+ );
@Nullable
@Override
public FurnitureWrapper getFurniture(Entity entity) {
- BukkitFurniture furniture = CraftEngineFurniture.getLoadedFurnitureByBaseEntity(entity);
- if (furniture == null) return null;
- String id = furniture.id().asString();
- return new FurnitureWrapper(this.identifier(), id, id);
+ BukkitFurniture furniture = CraftEngineFurniture.getLoadedFurnitureByMetaEntity(entity);
+ if (furniture == null) {
+ furniture = CraftEngineFurniture.getLoadedFurnitureByCollider(entity);
+ if (furniture == null) return null;
+ }
+ FurnitureDefinition definition = furniture.config;
+ String furnitureName = definition.settings().getCustomData(FURNITURE_NAME_KEY);
+ return new FurnitureWrapper(this.identifier(), definition.id().asString(), furnitureName != null ? furnitureName : definition.translationKey());
}
@Nullable
@Override
public FurnitureWrapper getFurniture(Block block) {
- return null;
+ ImmutableBlockState blockState = CraftEngineBlocks.getCustomBlockState(block);
+ if (blockState == null) return null;
+ BlockDefinition definition = blockState.owner().value();
+ String blockName = blockState.settings().getCustomData(BLOCK_NAME_KEY);
+ return new FurnitureWrapper(this.identifier(), definition.id().asString(), blockName != null ? blockName : definition.translationKey());
}
@Override