Merge pull request #23 from saschabuehrle/fix-issue-18
fix: guard fast easy place ticks against invalid entity/block lookups
This commit is contained in:
@@ -86,6 +86,8 @@ function processEasyPlace(player) {
|
|||||||
if (!structureBlock)
|
if (!structureBlock)
|
||||||
return;
|
return;
|
||||||
const worldBlock = player.dimension.getBlock(structureBlock.location);
|
const worldBlock = player.dimension.getBlock(structureBlock.location);
|
||||||
|
if (!worldBlock)
|
||||||
|
return;
|
||||||
if (locationsPlacedLastTick.has(JSON.stringify(worldBlock.location)))
|
if (locationsPlacedLastTick.has(JSON.stringify(worldBlock.location)))
|
||||||
return;
|
return;
|
||||||
locationsPlacedLastTick.add(JSON.stringify(worldBlock.location));
|
locationsPlacedLastTick.add(JSON.stringify(worldBlock.location));
|
||||||
@@ -103,10 +105,14 @@ function preventAction(event, player) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isHoldingActionItem(player) {
|
function isHoldingActionItem(player) {
|
||||||
const mainhandItemStack = player.getComponent(EntityComponentTypes.Equippable).getEquipment(EquipmentSlot.Mainhand);
|
try {
|
||||||
if (!mainhandItemStack)
|
const mainhandItemStack = player.getComponent(EntityComponentTypes.Equippable).getEquipment(EquipmentSlot.Mainhand);
|
||||||
|
if (!mainhandItemStack)
|
||||||
|
return false;
|
||||||
|
return mainhandItemStack.typeId === ACTION_ITEM;
|
||||||
|
} catch {
|
||||||
return false;
|
return false;
|
||||||
return mainhandItemStack.typeId === ACTION_ITEM;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function tryPlaceBlock(player, worldBlock, structureBlock) {
|
function tryPlaceBlock(player, worldBlock, structureBlock) {
|
||||||
|
|||||||
Reference in New Issue
Block a user