protect against unknown keys
All checks were successful
/ Auto-Build-App (push) Successful in 1m51s

This commit is contained in:
pietru 2024-11-05 19:04:33 +01:00
parent cf7b5ad238
commit 695cf46146

View file

@ -4,6 +4,7 @@ import com.llamalad7.mixinextras.sugar.Local;
import finalforeach.cosmicreach.accounts.Account; import finalforeach.cosmicreach.accounts.Account;
import finalforeach.cosmicreach.blocks.BlockPosition; import finalforeach.cosmicreach.blocks.BlockPosition;
import finalforeach.cosmicreach.blocks.BlockState; import finalforeach.cosmicreach.blocks.BlockState;
import finalforeach.cosmicreach.blocks.BlockStateMissing;
import finalforeach.cosmicreach.networking.NetworkIdentity; import finalforeach.cosmicreach.networking.NetworkIdentity;
import finalforeach.cosmicreach.networking.NetworkSide; import finalforeach.cosmicreach.networking.NetworkSide;
import finalforeach.cosmicreach.networking.packets.MessagePacket; import finalforeach.cosmicreach.networking.packets.MessagePacket;
@ -33,6 +34,10 @@ public class BlockPlaceMixin {
@Inject(method = "handle", at = @At("HEAD"), cancellable = true) @Inject(method = "handle", at = @At("HEAD"), cancellable = true)
private void event_block_place(CallbackInfo ci, @Local NetworkIdentity identity, @Local ChannelHandlerContext ctx){ private void event_block_place(CallbackInfo ci, @Local NetworkIdentity identity, @Local ChannelHandlerContext ctx){
if (identity.getSide() != NetworkSide.CLIENT) { if (identity.getSide() != NetworkSide.CLIENT) {
if (targetBlockState instanceof BlockStateMissing)
ci.cancel();
}
if (identity.getSide() != NetworkSide.CLIENT && ci.isCancelled()) {
Account account = ServerSingletons.getAccount(identity); Account account = ServerSingletons.getAccount(identity);
if (!Permissions.has_user_special_perm(account.getUniqueId()) && !can_edit_block(blockPos,"place",account.getUniqueId())) { if (!Permissions.has_user_special_perm(account.getUniqueId()) && !can_edit_block(blockPos,"place",account.getUniqueId())) {
ci.cancel(); ci.cancel();