flidiii

Untitled

Mar 24th, 2025
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.49 KB | None | 0 0
  1. package stellarcore.mixin;
  2.  
  3. import net.minecraft.entity.ItemEntity;
  4. import net.minecraft.entity.player.PlayerEntity;
  5. import net.minecraft.item.ItemStack;
  6. import net.minecraft.stat.Stats;
  7. import net.minecraft.text.Text;
  8. import net.minecraft.world.World;
  9. import org.spongepowered.asm.mixin.Mixin;
  10. import org.spongepowered.asm.mixin.Unique;
  11. import org.spongepowered.asm.mixin.injection.At;
  12. import org.spongepowered.asm.mixin.injection.Inject;
  13. import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
  14. import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
  15. import stellarcore.ModularInventory;
  16. import stellarcore.NewPlayerEntity;
  17. import stellarcore.StellarPlayerEntity;
  18.  
  19. @Mixin(ItemEntity.class)
  20. public class ItemPickUpMixin{
  21.     @Inject(at = @At("HEAD"), method = "onPlayerCollision", cancellable=true)
  22.     private void onPlayerCollision(PlayerEntity player, CallbackInfo info) {
  23.         if (player instanceof NewPlayerEntity) {
  24.             ItemEntity itemEntity = (ItemEntity) (Object) this;
  25.             ItemStack itemStack = itemEntity.getStack();
  26.  
  27.             if (itemStack.isEmpty()) return;
  28.  
  29.             try {
  30.                 NewPlayerEntity customPlayer = (NewPlayerEntity) player;
  31.                 StellarPlayerEntity stellarPlayerEntity = customPlayer.getStellarPlayerEntity();
  32.                 ModularInventory modularInventory = stellarPlayerEntity.getModularInventory();
  33.                 player.sendMessage(Text.of("Пытаюсь добавить " + itemStack.getCount() + " " + itemStack.getItem().getName().getString()), false);
  34.  
  35.                 int count = itemStack.getCount();
  36.                 boolean added = modularInventory.addItem(itemStack.copy()); // Важно использовать копию!
  37.  
  38.                 if (added) {
  39.                     player.sendMessage(Text.of("Предмет добавлен в модульный инвентарь"), false);
  40.                     player.sendPickup(itemEntity, count);
  41.                     player.increaseStat(Stats.PICKED_UP.getOrCreateStat(itemStack.getItem()), count);
  42.  
  43.                     itemEntity.discard();
  44.                     info.cancel();
  45.                 } else {
  46.                     player.sendMessage(Text.of("Не удалось добавить предмет в модульный инвентарь"), false);
  47.                 }
  48.             } catch (Exception e) {
  49.                 player.sendMessage(Text.of("Ошибка: " + e.getMessage()), false);
  50.             }
  51.         }
  52.     }
  53. }
  54.  
Advertisement
Add Comment
Please, Sign In to add comment