mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-02 16:49:03 +00:00
Enum replacer (#617)
* Constants * Update Enchanting.java * Update Beverages.java * Create ConstantReplacer.java
This commit is contained in:
@@ -5,6 +5,7 @@ import java.util.Map;
|
||||
|
||||
import com.rs2.Constants;
|
||||
import com.rs2.game.players.Player;
|
||||
import static com.rs2.game.content.StaticItemList.*;
|
||||
|
||||
public class Enchanting {
|
||||
|
||||
@@ -16,28 +17,26 @@ public class Enchanting {
|
||||
|
||||
public enum Enchant {
|
||||
|
||||
SAPPHIRERING(1637, 2550, 1),
|
||||
SAPPHIREAMULET(1694, 1727, 1),
|
||||
SAPPHIRENECKLACE(1656, 3853, 1),
|
||||
|
||||
EMERALDRING(1639, 2552, 2),
|
||||
EMERALDAMULET(1696, 1729, 2),
|
||||
EMERALDNECKLACE(1658, 5521, 2),
|
||||
|
||||
RUBYRING(1641, 2568, 3),
|
||||
RUBYAMULET(1698, 1725, 3),
|
||||
SAPPHIRERING(SAPPHIRE_RING, RING_OF_RECOIL, 1),
|
||||
SAPPHIREAMULET(SAPPHIRE_AMULET_1694, AMULET_OF_MAGIC, 1),
|
||||
SAPPHIRENECKLACE(SAPPHIRE_NECKLACE, GAMES_NECKLACE8, 1),
|
||||
EMERALDRING(EMERALD_RING, RING_OF_DUELING8, 2),
|
||||
EMERALDAMULET(EMERALD_AMULET_1696, AMULET_OF_DEFENCE, 2),
|
||||
EMERALDNECKLACE(EMERALD_NECKLACE, BINDING_NECKLACE, 2),
|
||||
RUBYRING(RUBY_RING, RING_OF_FORGING, 3),
|
||||
RUBYAMULET(RUBY_AMULET_1698, AMULET_OF_STRENGTH, 3),
|
||||
// RUBYNECKLACE(1660, 11194, 47, 59, 720, 115, 3),
|
||||
|
||||
DIAMONDRING(1643, 2570, 4),
|
||||
DIAMONDAMULET(1700, 1731, 4),
|
||||
|
||||
DIAMONDRING(DIAMOND_RING, RING_OF_LIFE, 4),
|
||||
DIAMONDAMULET(DIAMOND_AMULET_1700, AMULET_OF_POWER, 4),
|
||||
// DIAMONDNECKLACE(1662, 11090, 57, 67, 720, 115, 4),
|
||||
|
||||
DRAGONSTONERING(1645, 2572, 5),
|
||||
DRAGONSTONEAMULET(1702, 1704, 5),
|
||||
DRAGONSTONERING(DRAGONSTONE_RING, RING_OF_WEALTH, 5),
|
||||
DRAGONSTONEAMULET(DRAGONSTONE_AMMY_1702, AMULET_OF_GLORY, 5),
|
||||
// DRAGONSTONENECKLACE(1664, 11105, 68, 78, 721, 116, 5),
|
||||
|
||||
ONYXRING(6575, 6583, 6),
|
||||
ONYXAMULET(6581, 6585, 6);
|
||||
ONYXRING(ONYX_RING_6575, RING_OF_STONE, 6),
|
||||
ONYXAMULET(ONYX_AMULET_6581, AMULET_OF_FURY, 6);
|
||||
// ONYXNECKLACE(6577, 11128, 87, 97, 721, 452, 6)
|
||||
|
||||
int unenchanted, enchanted, reqEnchantmentLevel;
|
||||
@@ -74,18 +73,12 @@ public class Enchanting {
|
||||
}
|
||||
|
||||
public static enum EnchantSpell {
|
||||
SAPPHIRE(1155, 7, 18, 719, 114, 1,
|
||||
555, 1, 564, 1, -1, 0),
|
||||
EMERALD(1165, 27, 37, 719, 114, 2,
|
||||
556, 3, 564, 1, -1, 0),
|
||||
RUBY(1176, 47, 59, 720, 115, 3,
|
||||
554, 5, 564, 1, -1, 0),
|
||||
DIAMOND(1180, 57, 67, 720, 115, 4,
|
||||
557, 10, 564, 1, -1, 0),
|
||||
DRAGONSTONE(1187, 68, 78, 721, 116, 5,
|
||||
555, 15, 557, 15, 564, 1),
|
||||
ONYX(6003, 87, 97, 721, 452, 6,
|
||||
557, 20, 554, 20, 564, 1);
|
||||
SAPPHIRE(1155, 7, 18, 719, 114, 1, WATER_RUNE, 1, COSMIC_RUNE, 1, -1, 0),
|
||||
EMERALD(1165, 27, 37, 719, 114, 2, AIR_RUNE, 3, COSMIC_RUNE, 1, -1, 0),
|
||||
RUBY(1176, 47, 59, 720, 115, 3, FIRE_RUNE, 5, COSMIC_RUNE, 1, -1, 0),
|
||||
DIAMOND(1180, 57, 67, 720, 115, 4, EARTH_RUNE, 10, COSMIC_RUNE, 1, -1, 0),
|
||||
DRAGONSTONE(1187, 68, 78, 721, 116, 5, WATER_RUNE, 15, EARTH_RUNE, 15, COSMIC_RUNE, 1),
|
||||
ONYX(6003, 87, 97, 721, 452, 6, EARTH_RUNE, 20, FIRE_RUNE, 20, COSMIC_RUNE, 1);
|
||||
|
||||
int spell, levelReq, xp, anim, gfx, enchantmentLevel;
|
||||
int reqRune1, reqAmtRune1, reqRune2, reqAmtRune2, reqRune3, reqAmtRune3;
|
||||
|
||||
@@ -4,25 +4,23 @@ import com.rs2.Constants;
|
||||
import com.rs2.event.*;
|
||||
import com.rs2.game.players.Player;
|
||||
import com.rs2.util.Misc;
|
||||
|
||||
import static com.rs2.game.content.StaticItemList.*;
|
||||
public class Beverages {
|
||||
|
||||
private static final int BEER_GLASS = 1919;
|
||||
|
||||
public static enum beverageData {
|
||||
BEER(1917, BEER_GLASS, 829, true, false, false, false),
|
||||
BEER1(7740, BEER_GLASS, 829, true, false, false, false),
|
||||
GROG(1915, BEER_GLASS, 829, true, false, false, false),
|
||||
BANDITS_BREW(4627, BEER_GLASS, 829, true, false, false, false),
|
||||
DRAGON_BITTER(1911, BEER_GLASS, 829, true, false, false, false),
|
||||
CIDER(7752,BEER_GLASS, 829, true, false, false, false),
|
||||
MATURE_CIDER(5765, BEER_GLASS, 829, true, false, false, false),
|
||||
MOONLIGHT_MEAD(7750, BEER_GLASS, 829, true, false, false, false),
|
||||
DWARVEN_STOUT(1913, BEER_GLASS, 829, true, false, false, false),
|
||||
GREENMANS_ALE(1909, BEER_GLASS, 829, true, false, false, false),
|
||||
CHEFS_DELIGHT(7754, BEER_GLASS, 829, true, false, false, false),
|
||||
ASGARNIAN_ALE(1905, BEER_GLASS, 829, true, false, false, false),
|
||||
WIZARDS_MIND_BOMB(1907, BEER_GLASS, 829, true, false, false, false);
|
||||
BEER_(BEER, BEER_GLASS, 829, true, false, false, false),
|
||||
BEER1_(BEER_7740, BEER_GLASS, 829, true, false, false, false),
|
||||
GROG_(GROG, BEER_GLASS, 829, true, false, false, false),
|
||||
BANDITS_BREW_(BANDITS_BREW, BEER_GLASS, 829, true, false, false, false),
|
||||
DRAGON_BITTER_(DRAGON_BITTER, BEER_GLASS, 829, true, false, false, false),
|
||||
CIDER_(CIDER_7752, BEER_GLASS, 829, true, false, false, false),
|
||||
MATURE_CIDER_(MATURE_CIDER, BEER_GLASS, 829, true, false, false, false),
|
||||
MOONLIGHT_MEAD_(MOONLIGHT_MEAD_7750, BEER_GLASS, 829, true, false, false, false),
|
||||
DWARVEN_STOUT_(DWARVEN_STOUT, BEER_GLASS, 829, true, false, false, false),
|
||||
GREENMANS_ALE_(GREENMANS_ALE, BEER_GLASS, 829, true, false, false, false),
|
||||
CHEFS_DELIGHT_(CHEFS_DELIGHT_7754, BEER_GLASS, 829, true, false, false, false),
|
||||
ASGARNIAN_ALE_(ASGARNIAN_ALE, BEER_GLASS, 829, true, false, false, false),
|
||||
WIZARDS_MIND_BOMB_(WIZARDS_MIND_BOMB, BEER_GLASS, 829, true, false, false, false);
|
||||
|
||||
private int bevId, replacement, bevAnim;
|
||||
private boolean effect1, effect2, effect3, effect4;
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.rs2.util;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.rs2.game.content.StaticItemList;
|
||||
import com.rs2.game.content.StaticNpcList;
|
||||
import com.rs2.game.content.StaticObjectList;
|
||||
|
||||
/**
|
||||
* Introduces constants into an enum.
|
||||
*
|
||||
* @author Advocatus
|
||||
*
|
||||
*/
|
||||
public class ConstantReplacer {
|
||||
|
||||
private static String [] skipped = { "bevAnim", "effect1", "effect2", "effect3", "effect4" };
|
||||
private static String enum_clazz = "com.rs2.game.content.consumables.Beverages$beverageData";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Map<Integer, String> items = buildNameMap(StaticItemList.class);
|
||||
Map<Integer, String> npcs = buildNameMap(StaticNpcList.class);
|
||||
Map<Integer, String> objects = buildNameMap(StaticObjectList.class);
|
||||
|
||||
Class<?> c = Class.forName(enum_clazz);
|
||||
if (!c.isEnum()) {
|
||||
System.err.println(enum_clazz + " is not an an enum.");
|
||||
return;
|
||||
}
|
||||
if(skipped == null)
|
||||
buildSkipped(c);
|
||||
Field enumfield = c.getDeclaredField("ENUM$VALUES");
|
||||
enumfield.setAccessible(true);
|
||||
|
||||
Enum[] values = (Enum[]) enumfield.get(null);
|
||||
|
||||
Field[] flds = c.getDeclaredFields();
|
||||
List<Field> vars = new LinkedList<>();
|
||||
for (Field f : flds) {
|
||||
if (!f.isEnumConstant() && !Modifier.isStatic(f.getModifiers())) {
|
||||
vars.add(f);
|
||||
}
|
||||
}
|
||||
|
||||
for (Enum m : values) {
|
||||
String out = m.name() + "(";
|
||||
for (Field f : vars) {
|
||||
f.setAccessible(true);
|
||||
if(f.getGenericType().getTypeName() == "int")
|
||||
out += ((!skip(f.getName()) ? items.get(f.getInt(m)) : f.getInt(m)) + ", ");
|
||||
else
|
||||
out += f.get(m) + ", ";
|
||||
}
|
||||
out = out.substring(0, out.length() - 2);
|
||||
out += "),";
|
||||
System.out.println(out);
|
||||
}
|
||||
}
|
||||
|
||||
private static void buildSkipped(Class<?> c) throws Exception {
|
||||
Field[] flds = c.getDeclaredFields();
|
||||
String out = ("private static String [] skipped = { ");
|
||||
for (Field f : flds) {
|
||||
if (!f.isEnumConstant() && !Modifier.isStatic(f.getModifiers())) {
|
||||
out += ("\"" + f.getName() + "\", ");
|
||||
}
|
||||
}
|
||||
out = out.substring(0, out.length() - 3);
|
||||
out += ("\" };");
|
||||
System.out.println(out);
|
||||
}
|
||||
|
||||
private static Map<Integer, String> buildNameMap(Class clazz)
|
||||
throws IllegalArgumentException, IllegalAccessException {
|
||||
Field[] declaredFields = clazz.getDeclaredFields();
|
||||
Map<Integer, String> names = new HashMap<>();
|
||||
for (Field field : declaredFields) {
|
||||
if (Modifier.isStatic(field.getModifiers())) {
|
||||
names.put(field.getInt(null), field.getName());
|
||||
}
|
||||
}
|
||||
return names;
|
||||
}
|
||||
|
||||
private static boolean skip(String string) {
|
||||
for (String s : skipped) {
|
||||
if (string.equalsIgnoreCase(s)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user