RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
Tanning.java
1package com.osroyale.content.skill.impl.crafting.impl;
2
3import com.osroyale.Config;
4import com.osroyale.net.packet.out.SendInputAmount;
5import com.osroyale.net.packet.out.SendItemOnInterfaceZoom;
6import com.osroyale.net.packet.out.SendMessage;
7import com.osroyale.net.packet.out.SendString;
8import com.osroyale.game.world.entity.mob.player.Player;
9import com.osroyale.game.world.items.Item;
10import com.osroyale.game.world.items.ItemDefinition;
11import com.osroyale.util.Utility;
12
53
54public class Tanning {
55
59public enum TanData {
60 LEATHER(1739, 1741, 1),
61 HARD_LEATHER(1739, 1743, 3),
62 SNAKE_HIDE(6287, 6287, 15),
63 SNAKESKIN(6287, 6289, 20),
64 GREEN_LEATHER(1753, 1745, 20),
65 BLUE_LEATHER(1751, 2505, 20),
66 RED_LEATHER(1749, 2507, 20),
67 BLACK_LEATHER(1747, 2509, 20);
68
72 public final int ingredient;
73
77 public final int product;
78
82 public final int cost;
83
91 TanData(int ingredient, int product, int cost) {
92 this.ingredient = ingredient;
93 this.product = product;
94 this.cost = cost;
95 }
96 }
97
103 public static void open(Player player) {
104 int count = 0;
105 for (TanData data : TanData.values()) {
106 player.send(new SendItemOnInterfaceZoom(14769 + count, 250, data.ingredient));
107 player.send(new SendString((player.inventory.contains(data.ingredient) ? "<col=23db44>" : "<col=e0061c>") + Utility.formatEnum(data.name()), 14777 + count));
108 player.send(new SendString((player.inventory.contains(new Item(Config.CURRENCY, data.cost)) ? "<col=23db44>" : "<col=e0061c>") + data.cost + " coins", 14785 + count));
109 count++;
110 }
111
112 player.interfaceManager.open(14670);
113 }
114
122 public static void tan(Player player, int amount, TanData data) {
123 if (!player.inventory.contains(data.ingredient)) {
124 player.send(new SendMessage("You do not have any " + ItemDefinition.get(data.ingredient).getName() + " to do this."));
125 return;
126 }
127
128 int contain = player.inventory.computeAmountForId(data.ingredient);
129
130 if (amount > contain)
131 amount = contain;
132
133 int cost = data.cost * amount;
134
135 if (!player.inventory.contains(new Item(Config.CURRENCY, cost))) {
136 player.send(new SendMessage("You need " + cost + " coins to tan " + amount + " " + ItemDefinition.get(data.ingredient).getName() + "!"));
137 return;
138 }
139
140 player.inventory.remove(Config.CURRENCY, cost);
141 player.inventory.remove(data.ingredient, amount);
142 player.inventory.add(data.product, amount);
143 player.send(new SendMessage("You successfully tan all the " + ItemDefinition.get(data.ingredient).getName() + " for " + amount + " coins.", true));
144 }
145
153 public static boolean click(Player player, int button) {
154 switch (button) {
156 case 14817:
157 tan(player, 1, TanData.LEATHER);
158 return true;
159 case 14809:
160 tan(player, 5, TanData.LEATHER);
161 return true;
162 case 14801:
163 player.send(new SendInputAmount("How many leathers would you like to tan?", 2, input -> {
164 tan(player, Integer.parseInt(input), TanData.LEATHER);
165 }));
166 return true;
167 case 14793:
168 tan(player, 28, TanData.LEATHER);
169 return true;
170
172 case 14818:
173 tan(player, 1, TanData.HARD_LEATHER);
174 return true;
175 case 14810:
176 tan(player, 5, TanData.HARD_LEATHER);
177 return true;
178 case 14802:
179 player.send(new SendInputAmount("How many leathers would you like to tan?", 2, input -> {
180 tan(player, Integer.parseInt(input), TanData.HARD_LEATHER);
181 }));
182 return true;
183 case 14794:
184 tan(player, 28, TanData.HARD_LEATHER);
185 return true;
186
188 case 14819:
189 tan(player, 1, TanData.SNAKE_HIDE);
190 return true;
191 case 14811:
192 tan(player, 5, TanData.SNAKE_HIDE);
193 return true;
194 case 14803:
195 player.send(new SendInputAmount("How many leathers would you like to tan?", 2, input -> {
196 tan(player, Integer.parseInt(input), TanData.SNAKE_HIDE);
197 }));
198 return true;
199 case 14795:
200 tan(player, 28, TanData.SNAKE_HIDE);
201 return true;
202
204 case 14820:
205 tan(player, 1, TanData.SNAKESKIN);
206 return true;
207 case 14812:
208 tan(player, 5, TanData.SNAKESKIN);
209 return true;
210 case 14804:
211 player.send(new SendInputAmount("How many leathers would you like to tan?", 2, input -> {
212 tan(player, Integer.parseInt(input), TanData.SNAKESKIN);
213 }));
214 return true;
215 case 14796:
216 tan(player, 28, TanData.SNAKESKIN);
217 return true;
218
220 case 14821:
221 tan(player, 1, TanData.GREEN_LEATHER);
222 return true;
223 case 14813:
224 tan(player, 5, TanData.GREEN_LEATHER);
225 return true;
226 case 14805:
227 player.send(new SendInputAmount("How many leathers would you like to tan?", 2, input -> {
228 tan(player, Integer.parseInt(input), TanData.GREEN_LEATHER);
229 }));
230 return true;
231 case 14797:
232 tan(player, 28, TanData.GREEN_LEATHER);
233 return true;
234
236 case 14822:
237 tan(player, 1, TanData.BLUE_LEATHER);
238 return true;
239 case 14814:
240 tan(player, 5, TanData.BLUE_LEATHER);
241 return true;
242 case 14806:
243 player.send(new SendInputAmount("How many leathers would you like to tan?", 2, input -> {
244 tan(player, Integer.parseInt(input), TanData.BLUE_LEATHER);
245 }));
246 return true;
247 case 14798:
248 tan(player, 28, TanData.BLUE_LEATHER);
249 return true;
250
252 case 14823:
253 tan(player, 1, TanData.RED_LEATHER);
254 return true;
255 case 14815:
256 tan(player, 5, TanData.RED_LEATHER);
257 return true;
258 case 14807:
259 player.send(new SendInputAmount("How many leathers would you like to tan?", 2, input -> {
260 tan(player, Integer.parseInt(input), TanData.RED_LEATHER);
261 }));
262 return true;
263 case 14799:
264 tan(player, 28, TanData.RED_LEATHER);
265 return true;
266
268 case 14824:
269 tan(player, 1, TanData.BLACK_LEATHER);
270 return true;
271 case 14816:
272 tan(player, 5, TanData.BLACK_LEATHER);
273 return true;
274 case 14808:
275 player.send(new SendInputAmount("How many leathers would you like to tan?", 2, input -> {
276 tan(player, Integer.parseInt(input), TanData.BLACK_LEATHER);
277 }));
278 return true;
279 case 14800:
280 tan(player, 28, TanData.BLACK_LEATHER);
281 return true;
282 }
283 return false;
284 }
285}
static final int CURRENCY
Definition Config.java:213
static boolean click(Player player, int button)
Definition Tanning.java:153
static void tan(Player player, int amount, TanData data)
Definition Tanning.java:122
static String formatEnum(final String string)
Definition Utility.java:126
TanData(int ingredient, int product, int cost)
Definition Tanning.java:91