mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-01 15:36:45 +00:00
fix spawners not having entities due to using old format
This commit is contained in:
parent
8712c8874c
commit
ed67b4d3c2
@ -19,6 +19,7 @@
|
|||||||
package com.volmit.iris.engine.object;
|
package com.volmit.iris.engine.object;
|
||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
|
import com.volmit.iris.core.link.Identifier;
|
||||||
import com.volmit.iris.core.loader.IrisData;
|
import com.volmit.iris.core.loader.IrisData;
|
||||||
import com.volmit.iris.core.loader.IrisRegistrant;
|
import com.volmit.iris.core.loader.IrisRegistrant;
|
||||||
import com.volmit.iris.core.nms.INMS;
|
import com.volmit.iris.core.nms.INMS;
|
||||||
@ -34,8 +35,8 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.entity.EntityType;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -202,6 +203,14 @@ public class IrisBlockData extends IrisRegistrant {
|
|||||||
public TileData tryGetTile(IrisData data) {
|
public TileData tryGetTile(IrisData data) {
|
||||||
//TODO Do like a registry thing with the tile data registry. Also update the parsing of data to include **block** entities.
|
//TODO Do like a registry thing with the tile data registry. Also update the parsing of data to include **block** entities.
|
||||||
var type = getBlockData(data).getMaterial();
|
var type = getBlockData(data).getMaterial();
|
||||||
|
if (type == Material.SPAWNER && this.data.containsKey("entitySpawn")) {
|
||||||
|
String id = (String) this.data.get("entitySpawn");
|
||||||
|
if (tileData == null) tileData = new KMap<>();
|
||||||
|
KMap<String, Object> spawnData = (KMap<String, Object>) tileData.computeIfAbsent("SpawnData", k -> new KMap<>());
|
||||||
|
KMap<String, Object> entity = (KMap<String, Object>) spawnData.computeIfAbsent("entity", k -> new KMap<>());
|
||||||
|
entity.putIfAbsent("id", Identifier.fromString(id).toString());
|
||||||
|
}
|
||||||
|
|
||||||
if (!INMS.get().hasTile(type) || tileData == null || tileData.isEmpty())
|
if (!INMS.get().hasTile(type) || tileData == null || tileData.isEmpty())
|
||||||
return null;
|
return null;
|
||||||
return new TileData(type, this.tileData);
|
return new TileData(type, this.tileData);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user