Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package stellarcore.mixin;
- import net.minecraft.entity.ItemEntity;
- import net.minecraft.entity.player.PlayerEntity;
- import net.minecraft.item.ItemStack;
- import net.minecraft.stat.Stats;
- import net.minecraft.text.Text;
- import net.minecraft.world.World;
- import org.spongepowered.asm.mixin.Mixin;
- import org.spongepowered.asm.mixin.Unique;
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
- import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
- import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
- import stellarcore.ModularInventory;
- import stellarcore.NewPlayerEntity;
- import stellarcore.StellarPlayerEntity;
- @Mixin(ItemEntity.class)
- public class ItemPickUpMixin{
- @Inject(at = @At("HEAD"), method = "onPlayerCollision", cancellable=true)
- private void onPlayerCollision(PlayerEntity player, CallbackInfo info) {
- if (player instanceof NewPlayerEntity) {
- ItemEntity itemEntity = (ItemEntity) (Object) this;
- ItemStack itemStack = itemEntity.getStack();
- if (itemStack.isEmpty()) return;
- try {
- NewPlayerEntity customPlayer = (NewPlayerEntity) player;
- StellarPlayerEntity stellarPlayerEntity = customPlayer.getStellarPlayerEntity();
- ModularInventory modularInventory = stellarPlayerEntity.getModularInventory();
- player.sendMessage(Text.of("Пытаюсь добавить " + itemStack.getCount() + " " + itemStack.getItem().getName().getString()), false);
- int count = itemStack.getCount();
- boolean added = modularInventory.addItem(itemStack.copy()); // Важно использовать копию!
- if (added) {
- player.sendMessage(Text.of("Предмет добавлен в модульный инвентарь"), false);
- player.sendPickup(itemEntity, count);
- player.increaseStat(Stats.PICKED_UP.getOrCreateStat(itemStack.getItem()), count);
- itemEntity.discard();
- info.cancel();
- } else {
- player.sendMessage(Text.of("Не удалось добавить предмет в модульный инвентарь"), false);
- }
- } catch (Exception e) {
- player.sendMessage(Text.of("Ошибка: " + e.getMessage()), false);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment