Item ID Replacement

Discussion in 'Resources' started by Ultimate_n00b, Oct 12, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Ultimate_n00b

    If you're going to keep asking for a replacement, convert all your item IDs to names using this.

    Code:
    public String itemIdToString(int id) {
      return Material.getMaterial(id).name();
    }
     
  2. Offline

    DarkBladee12

    Ultimate_n00b How is this a good replacement?! "getMaterial(int)" is deprecated...
     
  3. Offline

    Ultimate_n00b

    For now. This converts the ID to the name, which CAN be used later.
     
  4. Ultimate_n00b I still don't see how it will be usefull in the future ._. (The id's are probably going to be removed. So it will be useless when 1.7 comes out (I guess so))
     
  5. Offline

    MiniDigger

    I think all ids will be removed, even the ones in the enums. The bukkit team will make new methods once the update is released
     
  6. Offline

    desht

    You're aware of the getMaterial(String) and matchMaterial(String) methods, right? Neither of which are deprecated.

    The correct migration strategy here is for plugins to simply stop supporting the use of integer material ID's and only use material names.
     
    Comphenix and Ultimate_n00b like this.
  7. Offline

    MiniDigger

    didnt even know that this methods exist :D. Thanks for pointing that out. And I never supported that ids, I cant keep them all in my mind :D
     
  8. Offline

    Jogy34

    If you're looking for a hard workaround you might as well just do this:
    Probably not the best thing to do but... (open)

    Code:java
    1.  
    2. Map<Integer, Material> idToMaterial = new HashMap<Integer, Material>()
    3. {{
    4. put(0, Material.AIR);
    5. put(1, Material.STONE);
    6. put(2, Material.GRASS);
    7. put(3, Material.DIRT);
    8. put(4, Material.COBBLESTONE);
    9. put(5, Material.WOOD);
    10. put(6, Material.SAPLING);
    11. put(7, Material.BEDROCK);
    12. put(8, Material.WATER);
    13. put(9, Material.STATIONARY_WATER);
    14. put(10, Material.LAVA);
    15. put(11, Material.STATIONARY_LAVA);
    16. put(12, Material.SAND);
    17. put(13, Material.GRAVEL);
    18. put(14, Material.GOLD_ORE);
    19. put(15, Material.IRON_ORE);
    20. put(16, Material.COAL_ORE);
    21. put(17, Material.LOG);
    22. put(18, Material.LEAVES);
    23. put(19, Material.SPONGE);
    24. put(20, Material.GLASS);
    25. put(21, Material.LAPIS_ORE);
    26. put(22, Material.LAPIS_BLOCK);
    27. put(23, Material.DISPENSER);
    28. put(24, Material.SANDSTONE);
    29. put(25, Material.NOTE_BLOCK);
    30. put(26, Material.BED_BLOCK);
    31. put(27, Material.POWERED_RAIL);
    32. put(28, Material.DETECTOR_RAIL);
    33. put(29, Material.PISTON_STICKY_BASE);
    34. put(30, Material.WEB);
    35. put(31, Material.LONG_GRASS);
    36. put(32, Material.DEAD_BUSH);
    37. put(33, Material.PISTON_BASE);
    38. put(34, Material.PISTON_EXTENSION);
    39. put(35, Material.WOOL);
    40. put(36, Material.PISTON_MOVING_PIECE);
    41. put(37, Material.YELLOW_FLOWER);
    42. put(38, Material.RED_ROSE);
    43. put(39, Material.BROWN_MUSHROOM);
    44. put(40, Material.RED_MUSHROOM);
    45. put(41, Material.GOLD_BLOCK);
    46. put(42, Material.IRON_BLOCK);
    47. put(43, Material.DOUBLE_STEP);
    48. put(44, Material.STEP);
    49. put(45, Material.BRICK);
    50. put(46, Material.TNT);
    51. put(47, Material.BOOKSHELF);
    52. put(48, Material.MOSSY_COBBLESTONE);
    53. put(49, Material.OBSIDIAN);
    54. put(50, Material.TORCH);
    55. put(51, Material.FIRE);
    56. put(52, Material.MOB_SPAWNER);
    57. put(53, Material.WOOD_STAIRS);
    58. put(54, Material.CHEST);
    59. put(55, Material.REDSTONE_WIRE);
    60. put(56, Material.DIAMOND_ORE);
    61. put(57, Material.DIAMOND_BLOCK);
    62. put(58, Material.WORKBENCH);
    63. put(59, Material.CROPS);
    64. put(60, Material.SOIL);
    65. put(61, Material.FURNACE);
    66. put(62, Material.BURNING_FURNACE);
    67. put(63, Material.SIGN_POST);
    68. put(64, Material.WOODEN_DOOR);
    69. put(65, Material.LADDER);
    70. put(66, Material.RAILS);
    71. put(67, Material.COBBLESTONE_STAIRS);
    72. put(68, Material.WALL_SIGN);
    73. put(69, Material.LEVER);
    74. put(70, Material.STONE_PLATE);
    75. put(71, Material.IRON_DOOR_BLOCK);
    76. put(72, Material.WOOD_PLATE);
    77. put(73, Material.REDSTONE_ORE);
    78. put(74, Material.GLOWING_REDSTONE_ORE);
    79. put(75, Material.REDSTONE_TORCH_OFF);
    80. put(76, Material.REDSTONE_TORCH_ON);
    81. put(77, Material.STONE_BUTTON);
    82. put(78, Material.SNOW);
    83. put(79, Material.ICE);
    84. put(80, Material.SNOW_BLOCK);
    85. put(81, Material.CACTUS);
    86. put(82, Material.CLAY);
    87. put(83, Material.SUGAR_CANE_BLOCK);
    88. put(84, Material.JUKEBOX);
    89. put(85, Material.FENCE);
    90. put(86, Material.PUMPKIN);
    91. put(87, Material.NETHERRACK);
    92. put(88, Material.SOUL_SAND);
    93. put(89, Material.GLOWSTONE);
    94. put(90, Material.PORTAL);
    95. put(91, Material.JACK_O_LANTERN);
    96. put(92, Material.CAKE_BLOCK);
    97. put(93, Material.DIODE_BLOCK_OFF);
    98. put(94, Material.DIODE_BLOCK_ON);
    99. put(95, Material.LOCKED_CHEST);
    100. put(96, Material.TRAP_DOOR);
    101. put(97, Material.MONSTER_EGGS);
    102. put(98, Material.SMOOTH_BRICK);
    103. put(99, Material.HUGE_MUSHROOM_1);
    104. put(100, Material.HUGE_MUSHROOM_2);
    105. put(101, Material.IRON_FENCE);
    106. put(102, Material.THIN_GLASS);
    107. put(103, Material.MELON_BLOCK);
    108. put(104, Material.PUMPKIN_STEM);
    109. put(105, Material.MELON_STEM);
    110. put(106, Material.VINE);
    111. put(107, Material.FENCE_GATE);
    112. put(108, Material.BRICK_STAIRS);
    113. put(109, Material.SMOOTH_STAIRS);
    114. put(110, Material.MYCEL);
    115. put(111, Material.WATER_LILY);
    116. put(112, Material.NETHER_BRICK);
    117. put(113, Material.NETHER_FENCE);
    118. put(114, Material.NETHER_BRICK_STAIRS);
    119. put(115, Material.NETHER_WARTS);
    120. put(116, Material.ENCHANTMENT_TABLE);
    121. put(117, Material.BREWING_STAND);
    122. put(118, Material.CAULDRON);
    123. put(119, Material.ENDER_PORTAL);
    124. put(120, Material.ENDER_PORTAL_FRAME);
    125. put(121, Material.ENDER_STONE);
    126. put(122, Material.DRAGON_EGG);
    127. put(123, Material.REDSTONE_LAMP_OFF);
    128. put(124, Material.REDSTONE_LAMP_ON);
    129. put(125, Material.WOOD_DOUBLE_STEP);
    130. put(126, Material.WOOD_STEP);
    131. put(127, Material.COCOA);
    132. put(128, Material.SANDSTONE_STAIRS);
    133. put(129, Material.EMERALD_ORE);
    134. put(130, Material.ENDER_CHEST);
    135. put(131, Material.TRIPWIRE_HOOK);
    136. put(132, Material.TRIPWIRE);
    137. put(133, Material.EMERALD_BLOCK);
    138. put(134, Material.SPRUCE_WOOD_STAIRS);
    139. put(135, Material.BIRCH_WOOD_STAIRS);
    140. put(136, Material.JUNGLE_WOOD_STAIRS);
    141. put(137, Material.COMMAND);
    142. put(138, Material.BEACON);
    143. put(139, Material.COBBLE_WALL);
    144. put(140, Material.FLOWER_POT);
    145. put(141, Material.CARROT);
    146. put(142, Material.POTATO);
    147. put(143, Material.WOOD_BUTTON);
    148. put(144, Material.SKULL);
    149. put(145, Material.ANVIL);
    150. put(146, Material.TRAPPED_CHEST);
    151. put(147, Material.GOLD_PLATE);
    152. put(148, Material.IRON_PLATE);
    153. put(149, Material.REDSTONE_COMPARATOR_OFF);
    154. put(150, Material.REDSTONE_COMPARATOR_ON);
    155. put(151, Material.DAYLIGHT_DETECTOR);
    156. put(152, Material.REDSTONE_BLOCK);
    157. put(153, Material.QUARTZ_ORE);
    158. put(154, Material.HOPPER);
    159. put(155, Material.QUARTZ_BLOCK);
    160. put(156, Material.QUARTZ_STAIRS);
    161. put(157, Material.ACTIVATOR_RAIL);
    162. put(158, Material.DROPPER);
    163. put(159, Material.STAINED_CLAY);
    164. put(170, Material.HAY_BLOCK);
    165. put(171, Material.CARPET);
    166. put(172, Material.HARD_CLAY);
    167. put(173, Material.COAL_BLOCK);
    168. put(256, Material.IRON_SPADE);
    169. put(257, Material.IRON_PICKAXE);
    170. put(258, Material.IRON_AXE);
    171. put(259, Material.FLINT_AND_STEEL);
    172. put(260, Material.APPLE);
    173. put(261, Material.BOW);
    174. put(262, Material.ARROW);
    175. put(263, Material.COAL);
    176. put(264, Material.DIAMOND);
    177. put(265, Material.IRON_INGOT);
    178. put(266, Material.GOLD_INGOT);
    179. put(267, Material.IRON_SWORD);
    180. put(268, Material.WOOD_SWORD);
    181. put(269, Material.WOOD_SPADE);
    182. put(270, Material.WOOD_PICKAXE);
    183. put(271, Material.WOOD_AXE);
    184. put(272, Material.STONE_SWORD);
    185. put(273, Material.STONE_SPADE);
    186. put(274, Material.STONE_PICKAXE);
    187. put(275, Material.STONE_AXE);
    188. put(276, Material.DIAMOND_SWORD);
    189. put(277, Material.DIAMOND_SPADE);
    190. put(278, Material.DIAMOND_PICKAXE);
    191. put(279, Material.DIAMOND_AXE);
    192. put(280, Material.STICK);
    193. put(281, Material.BOWL);
    194. put(282, Material.MUSHROOM_SOUP);
    195. put(283, Material.GOLD_SWORD);
    196. put(284, Material.GOLD_SPADE);
    197. put(285, Material.GOLD_PICKAXE);
    198. put(286, Material.GOLD_AXE);
    199. put(287, Material.STRING);
    200. put(288, Material.FEATHER);
    201. put(289, Material.SULPHUR);
    202. put(290, Material.WOOD_HOE);
    203. put(291, Material.STONE_HOE);
    204. put(292, Material.IRON_HOE);
    205. put(293, Material.DIAMOND_HOE);
    206. put(294, Material.GOLD_HOE);
    207. put(295, Material.SEEDS);
    208. put(296, Material.WHEAT);
    209. put(297, Material.BREAD);
    210. put(298, Material.LEATHER_HELMET);
    211. put(299, Material.LEATHER_CHESTPLATE);
    212. put(300, Material.LEATHER_LEGGINGS);
    213. put(301, Material.LEATHER_BOOTS);
    214. put(302, Material.CHAINMAIL_HELMET);
    215. put(303, Material.CHAINMAIL_CHESTPLATE);
    216. put(304, Material.CHAINMAIL_LEGGINGS);
    217. put(305, Material.CHAINMAIL_BOOTS);
    218. put(306, Material.IRON_HELMET);
    219. put(307, Material.IRON_CHESTPLATE);
    220. put(308, Material.IRON_LEGGINGS);
    221. put(309, Material.IRON_BOOTS);
    222. put(310, Material.DIAMOND_HELMET);
    223. put(311, Material.DIAMOND_CHESTPLATE);
    224. put(312, Material.DIAMOND_LEGGINGS);
    225. put(313, Material.DIAMOND_BOOTS);
    226. put(314, Material.GOLD_HELMET);
    227. put(315, Material.GOLD_CHESTPLATE);
    228. put(316, Material.GOLD_LEGGINGS);
    229. put(317, Material.GOLD_BOOTS);
    230. put(318, Material.FLINT);
    231. put(319, Material.PORK);
    232. put(320, Material.GRILLED_PORK);
    233. put(321, Material.PAINTING);
    234. put(322, Material.GOLDEN_APPLE);
    235. put(323, Material.SIGN);
    236. put(324, Material.WOOD_DOOR);
    237. put(325, Material.BUCKET);
    238. put(326, Material.WATER_BUCKET);
    239. put(327, Material.LAVA_BUCKET);
    240. put(328, Material.MINECART);
    241. put(329, Material.SADDLE);
    242. put(330, Material.IRON_DOOR);
    243. put(331, Material.REDSTONE);
    244. put(332, Material.SNOW_BALL);
    245. put(333, Material.BOAT);
    246. put(334, Material.LEATHER);
    247. put(335, Material.MILK_BUCKET);
    248. put(336, Material.CLAY_BRICK);
    249. put(337, Material.CLAY_BALL);
    250. put(338, Material.SUGAR_CANE);
    251. put(339, Material.PAPER);
    252. put(340, Material.BOOK);
    253. put(341, Material.SLIME_BALL);
    254. put(342, Material.STORAGE_MINECART);
    255. put(343, Material.POWERED_MINECART);
    256. put(344, Material.EGG);
    257. put(345, Material.COMPASS);
    258. put(346, Material.FISHING_ROD);
    259. put(347, Material.WATCH);
    260. put(348, Material.GLOWSTONE_DUST);
    261. put(349, Material.RAW_FISH);
    262. put(350, Material.COOKED_FISH);
    263. put(351, Material.INK_SACK);
    264. put(352, Material.BONE);
    265. put(353, Material.SUGAR);
    266. put(354, Material.CAKE);
    267. put(355, Material.BED);
    268. put(356, Material.DIODE);
    269. put(357, Material.COOKIE);
    270. put(358, Material.MAP);
    271. put(359, Material.SHEARS);
    272. put(360, Material.MELON);
    273. put(361, Material.PUMPKIN_SEEDS);
    274. put(362, Material.MELON_SEEDS);
    275. put(363, Material.RAW_BEEF);
    276. put(364, Material.COOKED_BEEF);
    277. put(365, Material.RAW_CHICKEN);
    278. put(366, Material.COOKED_CHICKEN);
    279. put(367, Material.ROTTEN_FLESH);
    280. put(368, Material.ENDER_PEARL);
    281. put(369, Material.BLAZE_ROD);
    282. put(370, Material.GHAST_TEAR);
    283. put(371, Material.GOLD_NUGGET);
    284. put(372, Material.NETHER_STALK);
    285. put(373, Material.POTION);
    286. put(374, Material.GLASS_BOTTLE);
    287. put(375, Material.SPIDER_EYE);
    288. put(376, Material.FERMENTED_SPIDER_EYE);
    289. put(377, Material.BLAZE_POWDER);
    290. put(378, Material.MAGMA_CREAM);
    291. put(379, Material.BREWING_STAND_ITEM);
    292. put(380, Material.CAULDRON_ITEM);
    293. put(381, Material.EYE_OF_ENDER);
    294. put(382, Material.SPECKLED_MELON);
    295. put(383, Material.MONSTER_EGG);
    296. put(384, Material.EXP_BOTTLE);
    297. put(385, Material.FIREBALL);
    298. put(386, Material.BOOK_AND_QUILL);
    299. put(387, Material.WRITTEN_BOOK);
    300. put(388, Material.EMERALD);
    301. put(389, Material.ITEM_FRAME);
    302. put(390, Material.FLOWER_POT_ITEM);
    303. put(391, Material.CARROT_ITEM);
    304. put(392, Material.POTATO_ITEM);
    305. put(393, Material.BAKED_POTATO);
    306. put(394, Material.POISONOUS_POTATO);
    307. put(395, Material.EMPTY_MAP);
    308. put(396, Material.GOLDEN_CARROT);
    309. put(397, Material.SKULL_ITEM);
    310. put(398, Material.CARROT_STICK);
    311. put(399, Material.NETHER_STAR);
    312. put(400, Material.PUMPKIN_PIE);
    313. put(401, Material.FIREWORK);
    314. put(402, Material.FIREWORK_CHARGE);
    315. put(403, Material.ENCHANTED_BOOK);
    316. put(404, Material.REDSTONE_COMPARATOR);
    317. put(405, Material.NETHER_BRICK_ITEM);
    318. put(406, Material.QUARTZ);
    319. put(407, Material.EXPLOSIVE_MINECART);
    320. put(408, Material.HOPPER_MINECART);
    321. put(417, Material.IRON_BARDING);
    322. put(418, Material.GOLD_BARDING);
    323. put(419, Material.DIAMOND_BARDING);
    324. put(420, Material.LEASH);
    325. put(421, Material.NAME_TAG);
    326. put(2256, Material.GOLD_RECORD);
    327. put(2257, Material.GREEN_RECORD);
    328. put(2258, Material.RECORD_3);
    329. put(2259, Material.RECORD_4);
    330. put(2260, Material.RECORD_5);
    331. put(2261, Material.RECORD_6);
    332. put(2262, Material.RECORD_7);
    333. put(2263, Material.RECORD_8);
    334. put(2264, Material.RECORD_9);
    335. put(2265, Material.RECORD_10);
    336. put(2266, Material.RECORD_11);
    337. put(2267, Material.RECORD_12);
    338. }};
     
  9. Offline

    MiniDigger

    Jogy34

    I dont think anybody really wants that ids. You can use the names and add TabCompletion to it. This is the best method :D
     
  10. Offline

    Jogy34

    There are some plugins, including one of mine, that heavily rely on item ids.
     
  11. Offline

    MiniDigger

  12. Offline

    Jogy34

    For my TARDIS plugin I have a bunch of files that dictate how structures are built. To create theses files I save blocks in a cuboid by using their id and data values. When 1.7 comes out and takes away id and data I'll probably use a map similar to the one that I posted until I figure out a way of creating and reading these files efficiently without using them.
     
  13. Offline

    MiniDigger

    Jogy34 ah ok. So why you dont use the names?
     
  14. Offline

    Jogy34

    Because then the files sizes would be a lot larger. I recently optimized the format that I use to save them so it wouldn't be as bad as it used to be though. It would also make the files ugly and prone to corruption, plus I don't yet know what data values are being replaced with.
     
  15. Offline

    MiniDigger

    Jogy34 so we all just have to wait till the update is released and all plugins are broken ;D
     
  16. Offline

    Jogy34


    I'm guessing the bukkit devs will do a similar thing to what they did when the health format was changed from integers to doubles so as not to break a lot of plugins. They may just keep the deprecated methods but not have id support for new blocks and items.
     
  17. Offline

    desht

    Jogy34 I'm in a similar situation with ChessCraft and the piece template files, e.g. https://github.com/desht/ChessCraft/blob/master/src/main/resources/datafiles/piece_styles/huge.yml - I recently switched everything over to material names instead of id's.

    The real problem comes, though, with material data values (e.g. LADDER:5 is a ladder facing east) - there's no easy way right now with Bukkit to parse data values in general from strings like LADDER:EAST. I'm hoping some API is added to Bukkit to do this, other I (and potentially others, like WorldEdit) will be doing a lot of coding...
     
    bobacadodl likes this.
  18. Offline

    Jogy34


    I tried using material names on one of my middle sized structures and it turned out all right (current | with names). I still don't really like the look of it as it went from having all symbols to have all caps words interlaced with symbols. I also have a few (not many but still some) people that edit these files and with the names being like this I know they're going to mess up the file and then continue to complain to me that it doesn't work. There's also the problem that I don't know what to do with the data values yet but I guess I'll have to wait and see how minecraft/bukkit handles that.
     
  19. Offline

    Ultimate_n00b

    I like how you store a lot of blocks, it's a nice way. I think I'll have to use that for a custom block storage thing I am working on..
     
Thread Status:
Not open for further replies.

Share This Page