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.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.stat.Stats;
- import org.jetbrains.annotations.Nullable;
- import org.spongepowered.asm.mixin.Mixin;
- import org.spongepowered.asm.mixin.Shadow;
- 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 stellarcore.ItemPickupEvent;
- import stellarcore.ModularInventory;
- import java.util.UUID;
- @Mixin(ItemEntity.class)
- public abstract class ItemPickUpMixin implements ItemPickupEvent{
- @Shadow private int pickupDelay;
- @Shadow @Nullable private UUID owner;
- @Unique
- @Nullable private PlayerEntity player;
- @Inject(at = @At("HEAD"), method = "onPlayerCollision")
- private void tick(CallbackInfo info) {
- if(1 == 0) {
- }else{
- ItemStack itemStack = this.getStack();
- Item item = itemStack.getItem();
- int i = itemStack.getCount();
- ModularInventory modularInventory = new ModularInventory(10);
- if (this.pickupDelay == 0 && (this.owner == null || this.owner.equals(player.getUuid())) && modularInventory.addItem(itemStack)) {
- player.sendPickup(this.getItem(), i);
- if (itemStack.isEmpty()) {
- this.getItem();
- itemStack.setCount(i);
- }
- player.increaseStat(Stats.PICKED_UP.getOrCreateStat(item), i);
- player.triggerItemPickedUpByEntityCriteria(this.getItem());
- }
- }
- }
- @Override
- public void setItem(Item item) {
- this.setItem(item);
- }
- @Override
- public ItemEntity getItem() {
- return this.getItem();
- }
- @Override
- public PlayerEntity getPlayer() {
- return this.getPlayer();
- }
- @Override
- public ItemStack getStack(){
- return this.getStack();
- }
- }
Add Comment
Please, Sign In to add comment