mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-12-23 06:50:26 +01:00
Allow custom unusable-space blocker item (#4038)
* Allow the "unusable-space-block" to be a custom item (specified by bedrock identifier) * add space for log error * don't use ugly atomic reference
This commit is contained in:
parent
176ef83ed1
commit
b1f04a9012
1 changed files with 14 additions and 5 deletions
|
@ -208,12 +208,21 @@ public class InventoryUtils {
|
|||
|
||||
private static ItemDefinition getUnusableSpaceBlockDefinition(int protocolVersion) {
|
||||
String unusableSpaceBlock = GeyserImpl.getInstance().getConfig().getUnusableSpaceBlock();
|
||||
ItemMapping unusableSpaceBlockID = Registries.ITEMS.forVersion(protocolVersion).getMapping(unusableSpaceBlock);
|
||||
if (unusableSpaceBlockID != null) {
|
||||
return unusableSpaceBlockID.getBedrockDefinition();
|
||||
} else {
|
||||
GeyserImpl.getInstance().getLogger().error("Invalid value" + unusableSpaceBlock + ". Resorting to barrier block.");
|
||||
ItemDefinition itemDefinition = null;
|
||||
|
||||
// looping through all the items to find the one with the specified Bedrock identifier
|
||||
for (ItemDefinition definition : Registries.ITEMS.forVersion(protocolVersion).getItemDefinitions().values()) {
|
||||
if (definition.getIdentifier().equals(unusableSpaceBlock)) {
|
||||
itemDefinition = definition;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (itemDefinition == null) {
|
||||
GeyserImpl.getInstance().getLogger().error("Invalid value " + unusableSpaceBlock + ". Resorting to barrier block.");
|
||||
return Registries.ITEMS.forVersion(protocolVersion).getStoredItems().barrier().getBedrockDefinition();
|
||||
} else {
|
||||
return itemDefinition;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue