add continious rotation
All checks were successful
/ Auto-Build-App (push) Successful in 1m53s

This commit is contained in:
pietru 2025-04-02 23:23:41 +02:00
parent 3edd1e5afd
commit 7c3e310ca2

View file

@ -5,7 +5,9 @@ import finalforeach.cosmicreach.accounts.Account;
import finalforeach.cosmicreach.blocks.BlockPosition;
import finalforeach.cosmicreach.blocks.BlockState;
import finalforeach.cosmicreach.blocks.BlockStateMissing;
import finalforeach.cosmicreach.entities.player.Player;
import finalforeach.cosmicreach.items.ItemMergeStrategy;
import finalforeach.cosmicreach.items.ItemSlot;
import finalforeach.cosmicreach.items.ItemStack;
import finalforeach.cosmicreach.networking.NetworkIdentity;
import finalforeach.cosmicreach.networking.packets.MessagePacket;
@ -29,6 +31,8 @@ public class BlockPlaceMixin {
BlockPosition blockPos;
@Shadow
BlockState targetBlockState;
@Shadow
byte itemSlotNum;
@Inject(method = "handle", at = @At("HEAD"), cancellable = true)
private void event_block_place(CallbackInfo ci, @Local NetworkIdentity identity, @Local ChannelHandlerContext ctx){
@ -48,8 +52,12 @@ public class BlockPlaceMixin {
if (!Permissions.has_user_special_perm(account.getUniqueId()) && !can_edit_block(temp,"place",account.getUniqueId())) {
ci.cancel();
if (!identity.getPlayer().gamemode.hasInfiniteItems())
identity.getPlayer().inventory.merge(new ItemStack(targetBlockState.getItem()), ItemMergeStrategy.ONLY_ONE_SLOT);
Player player = identity.getPlayer();
if (!player.gamemode.hasInfiniteItems()){
ItemSlot itemSlot = player.inventory.getSlot(this.itemSlotNum);
itemSlot.setDirty(true);
player.inventory.syncDirtySlots(0, identity);
}
MessagePacket packet = new MessagePacket("[Server] " + (is_not_reloading ? "Sorry, but this area is under protection." : "Sorry but you can't do this action right now. [Config Reload In Progress]"));
packet.setupAndSend(ctx);