I know it says placeholderAPI is recommended, but the examples that are currently up use it and cause warnings.
[00:03:34] [Server thread/WARN] [virtualchest]: Cannot apply field 'RepresentedPlayer' to the item, ignore it.
org.spongepowered.api.data.persistence.InvalidDataException: ninja.leaping.configurate.objectmapping.ObjectMappingException: Invalid UUID string: %player_uuid%
at com.github.ustc_zzzz.virtualchest.inventory.item.VirtualChestItemStackSerializer.deserializeForKeys(VirtualChestItemStackSerializer.java:104) ~[VirtualChestItemStackSerializer.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.item.VirtualChestItemStackSerializer.deserializeItemFrom(VirtualChestItemStackSerializer.java:185) ~[VirtualChestItemStackSerializer.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.item.VirtualChestItemStackSerializer.apply(VirtualChestItemStackSerializer.java:151) ~[VirtualChestItemStackSerializer.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.item.VirtualChestItem.fillInventory(VirtualChestItem.java:135) ~[VirtualChestItem.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.setItemInInventory(VirtualChestInventory.java:150) ~[VirtualChestInventory.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.updateInventory(VirtualChestInventory.java:138) ~[VirtualChestInventory.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.access$400(VirtualChestInventory.java:45) ~[VirtualChestInventory.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory$EventListener.lambda$fireOpenEvent$0(VirtualChestInventory.java:284) ~[VirtualChestInventory$EventListener.class:?]
at org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:186) ~[SchedulerBase.class:1.12.2-2611-7.1.0-BETA-3002]
at org.spongepowered.common.scheduler.SyncScheduler.executeTaskRunnable(SyncScheduler.java:70) ~[SyncScheduler.class:1.12.2-2611-7.1.0-BETA-3002]
at org.spongepowered.common.scheduler.SchedulerBase.startTask(SchedulerBase.java:179) ~[SchedulerBase.class:1.12.2-2611-7.1.0-BETA-3002]
at org.spongepowered.common.scheduler.SchedulerBase.processTask(SchedulerBase.java:165) ~[SchedulerBase.class:1.12.2-2611-7.1.0-BETA-3002]
at java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4707) [?:1.8.0_151]
at org.spongepowered.common.scheduler.SchedulerBase.runTick(SchedulerBase.java:108) [SchedulerBase.class:1.12.2-2611-7.1.0-BETA-3002]
at org.spongepowered.common.scheduler.SyncScheduler.tick(SyncScheduler.java:44) [SyncScheduler.class:1.12.2-2611-7.1.0-BETA-3002]
at org.spongepowered.common.scheduler.SpongeScheduler.tickSyncScheduler(SpongeScheduler.java:185) [SpongeScheduler.class:1.12.2-2611-7.1.0-BETA-3002]
at org.spongepowered.mod.SpongeMod.onTick(SpongeMod.java:278) [SpongeMod.class:1.12.2-2611-7.1.0-BETA-3002]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_24_SpongeMod_onTick_ServerTickEvent.invoke(.dynamic) [?:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) [ASMEventHandler.class:?]
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:651) [EventBus.class:?]
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:589) [EventBus.class:?]
at net.minecraftforge.fml.common.FMLCommonHandler.onPreServerTick(FMLCommonHandler.java:278) [FMLCommonHandler.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:655) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:524) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
Caused by: ninja.leaping.configurate.objectmapping.ObjectMappingException: Invalid UUID string: %player_uuid%
at com.github.ustc_zzzz.virtualchest.inventory.item.VirtualChestItemStackSerializer$GameProfileSerializer.getUUIDByString(VirtualChestItemStackSerializer.java:311) ~[VirtualChestItemStackSerializer$GameProfileSerializer.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.item.VirtualChestItemStackSerializer$GameProfileSerializer.deserialize(VirtualChestItemStackSerializer.java:323) ~[VirtualChestItemStackSerializer$GameProfileSerializer.class:?]
at com.github.ustc_zzzz.virtualchest.inventory.item.VirtualChestItemStackSerializer$GameProfileSerializer.deserialize(VirtualChestItemStackSerializer.java:269) ~[VirtualChestItemStackSerializer$GameProfileSerializer.class:?]
at ninja.leaping.configurate.SimpleConfigurationNode.getValue(SimpleConfigurationNode.java:226) ~[spongeforge-1.12.2-2611-7.1.0-BETA-3002.jar:1.12.2-2611-7.1.0-BETA-3002]
at ninja.leaping.configurate.ConfigurationNode.getValue(ConfigurationNode.java:356) ~[spongeforge-1.12.2-2611-7.1.0-BETA-3002.jar:1.12.2-2611-7.1.0-BETA-3002]
at com.github.ustc_zzzz.virtualchest.inventory.item.VirtualChestItemStackSerializer.deserializeForKeys(VirtualChestItemStackSerializer.java:99) ~[VirtualChestItemStackSerializer.class:?]
... 24 more
Think should make some examples without placeholder API, cause or else new server owners could freak at the warning spam not knowing what to make of it.