aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/network/CreateItemsPacket.java
blob: 88f9a1425f3837bd752537af9508cf139313b9dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package me.shedaniel.rei.network;

import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetHandlerPlayServer;
import net.minecraft.network.Packet;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.INetHandlerPlayServer;
import net.minecraft.util.text.ChatType;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextComponentTranslation;

import java.io.IOException;

public class CreateItemsPacket implements Packet<INetHandlerPlayServer> {
    
    private ItemStack stack;
    
    public CreateItemsPacket() {
    }
    
    public CreateItemsPacket(ItemStack stack) {
        this.stack = stack;
    }
    
    @Override
    public void readPacketData(PacketBuffer packetBuffer) throws IOException {
        stack = ItemStack.read(packetBuffer.readCompoundTag());
    }
    
    @Override
    public void writePacketData(PacketBuffer packetBuffer) throws IOException {
        NBTTagCompound tag = new NBTTagCompound();
        stack.write(tag);
        packetBuffer.writeCompoundTag(tag);
    }
    
    @Override
    public void processPacket(INetHandlerPlayServer iNetHandlerPlayServer) {
        NetHandlerPlayServer server = (NetHandlerPlayServer) iNetHandlerPlayServer;
        EntityPlayerMP player = server.player;
        if (player.inventory.addItemStackToInventory(stack.copy()))
            player.sendMessage(new TextComponentString(I18n.format("text.rei.cheat_items")
                    .replaceAll("\\{item_name}", stack.copy().getDisplayName().getFormattedText())
                    .replaceAll("\\{item_count}", stack.copy().getCount() + "")
                    .replaceAll("\\{player_name}", player.getScoreboardName())
            ), ChatType.SYSTEM);
        else
            player.sendMessage(new TextComponentTranslation("text.rei.failed_cheat_items"), ChatType.SYSTEM);
    }
    
}