summaryrefslogtreecommitdiff
path: root/src/com/redstoner/modules/naming/Naming.java
blob: c117b4b32c832836e73e94fdc9cad36dd5373294 (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.redstoner.modules.naming;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Version;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;

import net.md_5.bungee.api.ChatColor;
import net.minecraft.server.v1_11_R1.BlockPosition;
import net.minecraft.server.v1_11_R1.ChatMessage;
import net.minecraft.server.v1_11_R1.ContainerAnvil;
import net.minecraft.server.v1_11_R1.EntityHuman;
import net.minecraft.server.v1_11_R1.EntityPlayer;
import net.minecraft.server.v1_11_R1.PacketPlayOutOpenWindow;

@Version(major = 2, minor = 0, revision = 1, compatible = 2)
public class Naming implements Module
{
	@Command(hook = "anvil")
	public void anvil(CommandSender sender)
	{
		EntityPlayer p = ((CraftPlayer) sender).getHandle();
		AnvilContainer container = new AnvilContainer(p);
		int c = p.nextContainerCounter();
		p.playerConnection.sendPacket(
				new PacketPlayOutOpenWindow(c, "minecraft:anvil", new ChatMessage("Repairing", new Object[] {}), 0));
		p.activeContainer = container;
		p.activeContainer.windowId = c;
		p.activeContainer.addSlotListener(p);
	}
	
	@Command(hook = "name")
	public void name(CommandSender sender, String name)
	{
		name = ChatColor.translateAlternateColorCodes('&', name);
		ItemStack item = ((Player) sender).getInventory().getItemInMainHand();
		ItemMeta meta = item.getItemMeta();
		if (meta == null)
		{
			Utils.sendErrorMessage(sender, null, "You can not rename that item!");
			return;
		}
		meta.setDisplayName(name);
		item.setItemMeta(meta);
		Utils.sendMessage(sender, null, "Name set to " + name);
	}
	
	@Command(hook = "lore")
	public void lore(CommandSender sender, String name)
	{
		List<String> lore = new ArrayList<String>();
		name = ChatColor.translateAlternateColorCodes('&', name);
		lore.add(name);
		ItemStack item = ((Player) sender).getInventory().getItemInMainHand();
		ItemMeta meta = item.getItemMeta();
		if (meta == null)
		{
			Utils.sendErrorMessage(sender, null, "You can not change the lore of that item!");
			return;
		}
		meta.setLore(lore);
		item.setItemMeta(meta);
		item.getItemMeta().setLore(lore);
		Utils.sendMessage(sender, null, "Lore set to " + name);
	}
	
	public class AnvilContainer extends ContainerAnvil
	{
		public AnvilContainer(EntityHuman entity)
		{
			super(entity.inventory, entity.world, new BlockPosition(0, 0, 0), entity);
		}
		
		@Override
		public boolean a(EntityHuman entityhuman)
		{
			return true;
		}
	}
	
	// @noformat
	@Override
	public String getCommandString()
	{
		return "command anvil {\n" + 
		"	[empty] {\n" + 
		"		run anvil;\n" + 
		"		type player;\n" + 
		"		help Opens anvil GUI.;\n" + 
		"		perm utils.anvil;\n" + 
		"	}\n" + 
		"}\n" +
		"command name {\n" + 
		"	[string:name...] {\n" + 
		"		run name name;\n" + 
		"		type player;\n" + 
		"		help Names item in hand.;\n" + 
		"		perm utils.name;\n" + 
		"	}\n" + 
		"}\n" +
		"command lore {\n" + 
		"	[string:name...] {\n" + 
		"		run lore name;\n" + 
		"		type player;\n" + 
		"		help Adds lore to item in hand.;\n" + 
		"		perm utils.lore;\n" + 
		"	}\n" + 
		"}";
	}
	// @format
}