aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/network/CheatPacket.java
blob: 007c121b2e75cb0b4bf0e4ef8119994f11dacb3c (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
package me.shedaniel.network;

import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.Packet;
import net.minecraft.server.network.ServerPlayNetworkHandler;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.sortme.ChatMessageType;
import net.minecraft.text.TranslatableTextComponent;
import net.minecraft.util.PacketByteBuf;

import java.io.IOException;

/**
 * Created by James on 7/29/2018.
 */
public class CheatPacket implements Packet<ServerPlayNetworkHandler> {
    
    private ItemStack stack;
    
    public CheatPacket() {
    }
    
    public CheatPacket(ItemStack stack) {
        this.stack = stack;
    }
    
    @Override
    public void read(PacketByteBuf packetBuffer) throws IOException {
        stack = ItemStack.fromTag(packetBuffer.readCompoundTag());
    }
    
    @Override
    public void write(PacketByteBuf packetBuffer) throws IOException {
        CompoundTag tag = new CompoundTag();
        stack.setTag(tag);
        packetBuffer.writeCompoundTag(tag);
    }
    
    @Override
    public void apply(ServerPlayNetworkHandler iNetHandlerPlayServer) {
        ServerPlayNetworkHandler server = (ServerPlayNetworkHandler) iNetHandlerPlayServer;
        ServerPlayerEntity player = server.player;
        if (player.inventory.insertStack(stack.copy()))
            player.sendChatMessage(new TranslatableTextComponent("text.rei.cheat_items", stack.getDisplayName().getFormattedText(), stack.getAmount(), player.getEntityName()), ChatMessageType.SYSTEM);
        else player.sendChatMessage(new TranslatableTextComponent("text.rei.failed_cheat_items"), ChatMessageType.SYSTEM);
    }
    
}