Supprimer des items de base de minecraft
-
Faire cette technique serait du suicide car il provoquerai je-ne-sais-combien d’exception dès qu’il serait appelé, de plus, le système des IDs ne doit plus être utilisé depuis la 1.6 ! Je pense que la meilleure technique serait d’utiliser un événement qui changerait l’itemStack en null, quel est l’item que tu veux enlever ?
-
Je veux en enlever plusieurs! Par exemple, toutes les potions, les livres d’enchantements, la table d’enchantements, les armures, les épées, les outils,….!

-
tu peut tout simplement enlever les craft
-
C’est déja fait mais j’aimerai vraiment enlever les items quoi! Ca serait plus pratique! Histoire de m’y retrouver…
-
je pense pas que ce soit possible a moins de faire un coremod
-
Pour autant d’item, même faire un coremod serait impossible puisque comme je l’ai dis ça engendrerait beaucoup d’exceptions. Pour les potions, moi j’ai utilisé l’event PotionBrewEvent.Pre qui permet d’empêcher qu’une potion se fasse. Sinon, si tu es côté client, tu peux empêcher que les items soient mis dans l’inventaire, par exemple : empêcher la glowstone de se mettre dans le brewing stand.
Si tu veux supprimer toutes les potions, tu peux tout autant supprimer le brewing stand ou l’empêcher de se placer.
-
Un coremod? Ca consiste en quoi?
Zut zut zut n’empeche
-
@‘RageAgain’:
Un coremod? Ca consiste en quoi?
Zut zut zut n’empeche
Un coremod c’est un mod qui réécrit les classes de base de minecraft sauf que c’est EXTREMEMENT déconseillé. Forge essaie d’éviter les coremods à tout prix, ils conseillent donc d’utiliser les événements.
-
Aaah ouais! Nan mais je veux surtout pas toucher aux classes de base de Minecraft! J’ai déjà eu trop de problèmes avec ça!
Et donc, un evenement…Il existe un evenement capable de supprimer les items?
-
non je crois pas, il en existe pour supprimer les crafts mais pas pour supprimer des item
-
@‘RageAgain’:
Aaah ouais! Nan mais je veux surtout pas toucher aux classes de base de Minecraft! J’ai déjà eu trop de problèmes avec ça!
Et donc, un evenement…Il existe un evenement capable de supprimer les items?
Euh… Je ne suis pas sûr que tu comprennes ce qu’est un événement. Imaginons que tu veuilles empêcher le craft du brewing stand, voilà ce que donnerai tes classes :
Dans le init (il me semble) tu mets :
MinecraftForge.EVENT_BUS.register(new ClasseDeLEvent());puis dans ClasseDeLEvent tu mets :
public class ClasseDeLEvent { @SubscribeEvent //Je ne me rappelle plus vraiment du nom de l'event public void onCraftEvent(CraftEvent event) { //Je ne sais pas si tu dois utiliser cette fonction ou event.setResult, je te laisse regarder ça par toi-même event.setCanceled(true); } } -
Mais pour les crafts, j’ai déjà fait ça!
public static void removeRecipe(ItemStack stack) { List <irecipe>recipeList = CraftingManager.getInstance().getRecipeList(); for(int i = 0; i < recipeList.size(); i++) { ItemStack output = recipeList.get(i).getRecipeOutput(); if(output != null && stack.getItem() == output.getItem() && stack.getItemDamage() == output.getItemDamage()) { recipeList.remove(i); } } }J’ai cette méthode qui fait ça très bien!
Je me posais juste la question de savoir si il y avait moyen de totalement supprimer un item de sorte à ce qu’il se retrouve même pas dans la CreativeTabs!

Mais d’après ce que j’ai compris, c’est mort d’avance ;)</irecipe> -
@‘RageAgain’:
Mais pour les crafts, j’ai déjà fait ça!
public static void removeRecipe(ItemStack stack) { List <irecipe>recipeList = CraftingManager.getInstance().getRecipeList(); for(int i = 0; i < recipeList.size(); i++) { ItemStack output = recipeList.get(i).getRecipeOutput(); if(output != null && stack.getItem() == output.getItem() && stack.getItemDamage() == output.getItemDamage()) { recipeList.remove(i); } } }J’ai cette méthode qui fait ça très bien!
Je me posais juste la question de savoir si il y avait moyen de totalement supprimer un item de sorte à ce qu’il se retrouve même pas dans la CreativeTabs!

Mais d’après ce que j’ai compris, c’est mort d’avance ;)</irecipe>Tu peux tenter d’override les creativeTabs aussi.
-
Mais dans ce cas, disons que je veux enlever qu’un seul bloc, je me retrouve avec plus aucun de tout ceux qui étaient dans la même tabs!…
-
@‘RageAgain’:
Mais dans ce cas, disons que je veux enlever qu’un seul bloc, je me retrouve avec plus aucun de tout ceux qui étaient dans la même tabs!…
Ce que je veux dire c’est que soit tu recréer un creativeTab et dedans tu y met seulement les items voulues soit tu réécris les méthodes/variables du creativeTab voulu pour que ça n’affiche que ceux voulues.
-
C’est fortement déconseillé à cause des problèmes d’incompatibilité que ça peut engendrer et compliqué à mettre en place.
https://github.com/MinecraftForge/FML/issues/370#issuecomment-62309784 -
Merci beaucoup a tous pour vos réponses!
J’en conclus donc que c’est déconseillé et que donc, il vaut mieux juste enlever les crafts!
