diff --git a/2006Scape Server/src/main/java/com/rs2/game/content/combat/magic/Enchanting.java b/2006Scape Server/src/main/java/com/rs2/game/content/combat/magic/Enchanting.java index 2bc039a9..af7781f4 100644 --- a/2006Scape Server/src/main/java/com/rs2/game/content/combat/magic/Enchanting.java +++ b/2006Scape Server/src/main/java/com/rs2/game/content/combat/magic/Enchanting.java @@ -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; diff --git a/2006Scape Server/src/main/java/com/rs2/game/content/consumables/Beverages.java b/2006Scape Server/src/main/java/com/rs2/game/content/consumables/Beverages.java index 1bdf7ae6..962834f0 100644 --- a/2006Scape Server/src/main/java/com/rs2/game/content/consumables/Beverages.java +++ b/2006Scape Server/src/main/java/com/rs2/game/content/consumables/Beverages.java @@ -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; diff --git a/2006Scape Server/src/main/java/com/rs2/util/ConstantReplacer.java b/2006Scape Server/src/main/java/com/rs2/util/ConstantReplacer.java new file mode 100644 index 00000000..f35ae767 --- /dev/null +++ b/2006Scape Server/src/main/java/com/rs2/util/ConstantReplacer.java @@ -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 items = buildNameMap(StaticItemList.class); + Map npcs = buildNameMap(StaticNpcList.class); + Map 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 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 buildNameMap(Class clazz) + throws IllegalArgumentException, IllegalAccessException { + Field[] declaredFields = clazz.getDeclaredFields(); + Map 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; + } +}