Anti Xray?
-
Alors moi j’ai appelé cette fonction dans ClientTickEvent (avec un timer pour éviter que ce soit appelé tous les ticks).
J’ai fais comme ça car mon code est un peu différent :public static boolean hasIllegalTexture() { TextureAtlasSprite sprite = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture(Blocks.stone.getDefaultState()); if(sprite != null) { String iconName = sprite.getIconName(); String[] strs = iconName.split(":"); if(strs.length > 1) { String resource = strs[0] + ":textures/" + strs[1] + ".png"; ResourceLocation r = new ResourceLocation(resource); ITextureObject textureObject = Minecraft.getMinecraft().getTextureManager().getTexture(r); if(textureObject == null) { textureObject = new SimpleTexture(r ); Minecraft.getMinecraft().getTextureManager().loadTexture(r, textureObject); } int id = textureObject.getGlTextureId(); try { int[] textureData = TextureUtil.readImageData(Minecraft.getMinecraft().getResourceManager(), r); for(int color : textureData) { int alpha = color >> 24 & 0xFF; if(alpha != 255) { return true; } } } catch(IOException e) { e.printStackTrace(); } } } return false; }Comme en 1.8 un pack de ressource peut via le json changer le chemin des textures je ne voulais pas prendre de risque avec directement un resourcelocation, je passe par
TextureAtlasSprite sprite = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture(Blocks.stone.getDefaultState());
pour avoir le chemin de la texture.
Le problème c’est que ça me retourne un missing texture si j’appelle ça dans l’event TextureSwitch ou dans postInit. D’où mon message par ClientTickEvent qui n’est pas forcement le plus optimal. J’ai du-coup fait que ça coupe la connexion et affiche un gui custom :if(this.cheatTimer <= 0) { if(CheatBlocker.hasIllegalTexture() && this.mc.theWorld != null) { this.mc.theWorld.sendQuittingDisconnectingPacket(); this.mc.loadWorld((WorldClient)null); this.mc.displayGuiScreen(new GuiIllegalResourcePack()); } this.cheatTimer = 600; } else { this.cheatTimer–; }Dans ton cas tu peux check dans l’event TextureSwitchEvent, ça me semble la meilleur idée comme il est appelé lors du changement de pack de ressource.
Si mc.theWorld n’est pas null tu coupe la connexion, sinon ça veut dire que le joueur n’est pas un jeu et donc tu peux faire une variable booléenne cheat sur true et faire que si cette boolean est sur true le bouton de connexion au serveur est off. -
Sauf que le problème c’est que le joueur peut définir le texture pack depuis le fichier options
-
Dans ce cas, tu peux le vérifier au lancement du jeu ou à la connexion au serveur.
-
@‘robin4002’:
Dans ton cas tu peux check dans l’event TextureSwitchEvent, ça me semble la meilleur idée comme il est appelé lors du changement de pack de ressource.
Si mc.theWorld n’est pas null tu coupe la connexion, sinon ça veut dire que le joueur n’est pas un jeu et donc tu peux faire une variable booléenne cheat sur true et faire que si cette boolean est sur true le bouton de connexion au serveur est off.Les deux situations sont couvertes. S’il est en jeu tu le kick. S’il n’était pas en jeu tu bloque la connexion au serveur.
-
@‘Maxx_Qc’:
@‘Blackout’:
N’importe qui peut changer la texture de ses blocs en une image transparente, tu ne peux pas empêcher ça.
Le serveur envoie au client une copie partiel du monde, donc le seul moyen que tu puisse avoir, c’est réécrire tout le système de synchronisation du monde client/serveur pour n’envoyer que les blocs visibles par le client.On peut empêcher ça, va voir le lien du poste initial.
Mon serveur est moddé et sous launcher donc pas besoin de synchro client/serveur.Non, le post initial considère le client comme étant un joueur gentils. Ça va te filtrer uniquement les petits trolls à 2 balles.
Tu n’as même pas besoin de texture pack ou de quoi que se soit de visuel pour déterminer l’emplacement des minerais, donjons, coffres etc …
Un simple sniffer ou un simple mod qui permet de d’analyser les blocs du monde via un world.getBlockState() suffit. Et ça, pas besoin d’être expert pour le faire.
Ensuite quand quelqu’un triche, il fait rarement son X-Ray lui-même. Il télécharge un soft de triche qui est fait par quelqu’un de compétent et qui sait déjouer se genre de sécurité très facilement.
Tu n’as donc AUCUN moyen sûr d’empêcher un tricheur déterminé d’utiliser un X-Ray.La seule chose que tu puisses mettre en place, ce sont des outils de surveillance comportementale pour détecter quand un joueur triche.
-
En effet arrêter quelqu’un de déterminé et compétente est impossible dans ce cas.
Mais l’utilisateur normal qui veut tricher va tenter l’installation d’un pack de ressource et l’installation d’un mod xray.
Les deux cas peuvent être bloqué, le premier avec mon petit code et l’autre avec un launcher ou installateur qui supprime les mods intrus.Quelqu’un de compétent ira plus long en cherchant un moyen pour contourner la suppression de mod intrus (pas trop compliqué à notre niveau, il suffit juste de reprendre les mods et les lancer depuis le launcher officiel et s’il y a quelque chose qui empêche de lancer le jeu si ce n’est pas fait depuis l’installateur/le launcher du serveur c’est toujours contournable).
Voire si la personne est vraiment motivé s’amuser à regarder directement ce qui se trouve dans la ram (ou directement regarder les valeurs qui se trouve dans le heap de la JVM si c’est possible). -
@‘Blackout’:
@‘Maxx_Qc’:
@‘Blackout’:
N’importe qui peut changer la texture de ses blocs en une image transparente, tu ne peux pas empêcher ça.
Le serveur envoie au client une copie partiel du monde, donc le seul moyen que tu puisse avoir, c’est réécrire tout le système de synchronisation du monde client/serveur pour n’envoyer que les blocs visibles par le client.On peut empêcher ça, va voir le lien du poste initial.
Mon serveur est moddé et sous launcher donc pas besoin de synchro client/serveur.Non, le post initial considère le client comme étant un joueur gentils. Ça va te filtrer uniquement les petits trolls à 2 balles.
Tu n’as même pas besoin de texture pack ou de quoi que se soit de visuel pour déterminer l’emplacement des minerais, donjons, coffres etc …
Un simple sniffer ou un simple mod qui permet de d’analyser les blocs du monde via un world.getBlockState() suffit. Et ça, pas besoin d’être expert pour le faire.
Ensuite quand quelqu’un triche, il fait rarement son X-Ray lui-même. Il télécharge un soft de triche qui est fait par quelqu’un de compétent et qui sait déjouer se genre de sécurité très facilement.
Tu n’as donc AUCUN moyen sûr d’empêcher un tricheur déterminé d’utiliser un X-Ray.La seule chose que tu puisses mettre en place, ce sont des outils de surveillance comportementale pour détecter quand un joueur triche.
J’ai vérifié sur google les xray forge compatible 1.7.10 et ils sont blacklist par le mod principal de mon serveur, merci quand même.
Cordialement -
Bonjour je suis très intéressé de ce codage néanmoins j’ai essayé de le faire et je n’ai pas réussit

Pourriez vous par gentillesse me donné le codagePs:je m’en fiche du boutons option au menu je l’ai supprimé

-
Bah, t’as pas regardé la première page ? Je crois qu’il est aussi compatible en 1.7x, nan ?
-
J’ai éssayé sa

package ed.enderdeath.mod.common; import java.io.IOException; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.renderer.texture.SimpleTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.init.Blocks; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class TickHandler { private Minecraft mc; public TickHandler(Minecraft mc) { this.mc = mc; System.out.println("handler"); } @SubscribeEvent public void onRenderTick(RenderTickEvent event) { if (event.phase == Phase.START) { test(); System.out.println("handler"); } } private void test() { if(mc.thePlayer != null) { mc.thePlayer.setDead(); } System.out.println("handler"); } public static boolean hasIllegalTexture() { ResourceLocation r = new ResourceLocation("minecraft:textures/blocks/stone.png"); ITextureObject textureObject = Minecraft.getMinecraft().getTextureManager().getTexture(r ); if(textureObject == null) { textureObject = new SimpleTexture(r); Minecraft.getMinecraft().getTextureManager().loadTexture(r, textureObject); } int id = textureObject.getGlTextureId(); try { int[] textureData = TextureUtil.readImageData(Minecraft.getMinecraft().getResourceManager(), r); for(int color : textureData) { int alpha = color >> 24 & 0xFF; if(alpha != 255) { return true; } } } catch(IOException e) { e.printStackTrace(); } return false; } }Mais sa marche pas
-
En même temps est-ce que tu appelles la fonction, ou du moins t’en sers-tu en afin de faire une condition de ce genre
if(TickHandler.hasIllegalTexture)
Minecraft.getMinecraft().shutdown();Essaie cette condition dans la méthode onRenderTick, quoique ça pourrait aussi être l’event ClientTickEvent, tout simplement…
-
Bonjour je pense ma classe TickHandler est fausse aurez vous un tutoriel qui m’explique comment faire
Merci d’avance

Ma classe:
:::package ed.enderdeath.mod.common; import java.io.IOException; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.renderer.texture.SimpleTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.init.Blocks; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class TickHandler { private Minecraft mc; public TickHandler(Minecraft mc) { this.mc = mc; System.out.println("handler"); if(TickHandler.hasIllegalTexture()) Minecraft.getMinecraft().shutdown(); } @SubscribeEvent public void onRenderTick(RenderTickEvent event) { if (event.phase == Phase.START) { test(); System.out.println("handler"); } } private void test() { if(mc.thePlayer != null) { mc.thePlayer.setDead(); } System.out.println("handler"); } public static boolean hasIllegalTexture() { ResourceLocation r = new ResourceLocation("minecraft:textures/blocks/stone.png"); ITextureObject textureObject = Minecraft.getMinecraft().getTextureManager().getTexture(r ); if(textureObject == null) { textureObject = new SimpleTexture(r); Minecraft.getMinecraft().getTextureManager().loadTexture(r, textureObject); } int id = textureObject.getGlTextureId(); try { int[] textureData = TextureUtil.readImageData(Minecraft.getMinecraft().getResourceManager(), r); for(int color : textureData) { int alpha = color >> 24 & 0xFF; if(alpha != 255) { return true; } } } catch(IOException e) { e.printStackTrace(); } return false; } }:::
-
Selon toi, ce code fait quoi ?
Décris-le fonction par fonction ou ligne par ligne. -
Pour moi ce codage est un sorte de chose qui va se client
import java.io.IOException; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.renderer.texture.SimpleTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.init.Blocks; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class TickHandler { private Minecraft mc; public TickHandler(Minecraft mc) { this.mc = mc; System.out.println("handler"); if(TickHandler.hasIllegalTexture()) Minecraft.getMinecraft().shutdown(); } @SubscribeEvent public void onRenderTick(RenderTickEvent event) { if (event.phase == Phase.START) { test(); System.out.println("handler"); } } private void test() { if(mc.thePlayer != null) { mc.thePlayer.setDead(); } System.out.println("handler"); } public static boolean hasIllegalTexture() { ResourceLocation r = new ResourceLocation("minecraft:textures/blocks/stone.png"); ITextureObject textureObject = Minecraft.getMinecraft().getTextureManager().getTexture(r ); /*si la texture est transparenet*/ if(textureObject == null) { /*la je n'ai pas compris*/ textureObject = new SimpleTexture(r); /*pour load la texture?*/ Minecraft.getMinecraft().getTextureManager().loadTexture(r, textureObject); } /*id de la texture*/ int id = textureObject.getGlTextureId(); try { int[] textureData = TextureUtil.readImageData(Minecraft.getMinecraft().getResourceManager(), r); for(int color : textureData) { int alpha = color >> 24 & 0xFF; if(alpha != 255) /*si la texture est = 255 on laisse*/ { return true; } } } catch(IOException e) { e.printStackTrace(); } return false; } }je m’excuse je n’ai pas bien compris le codage pour moi hasilligalTexure sert à vérifié si la texture est transparente
Quelqu’un pourrai m’expliqué correctement ce codage et je n’ai pas vraiment compris le tick handler c’est la première fois que je l’utilise met plus sincère excuse -
Un tick handler est appelé à chaque tick en jeu, d’où son nom. Et cette méthode sert à check si la stone est transparente en vérifiant son alpha. Après sa te retourne un boolean donc faudrait que tu t’en serves justement dans ton tick handler. Si la condition est true alors tu fermes le jeu, sinon tu ne fais rien.
-
Pour la fonction hasIllegalTexture c’est bien ça. Elle renvoies true s’il y a de la transparence sur la stone.
Je voulais que tu me décris le reste de ta classe, pour voir si tu comprends le code que tu mets. Car en gros là tu as ça :
package ed.enderdeath.mod.common; import java.io.IOException; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.ITextureObject; import net.minecraft.client.renderer.texture.SimpleTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.init.Blocks; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class TickHandler { private Minecraft mc; public TickHandler(Minecraft mc) // ça c'est le constructeur. Il est appelé à chaque fois que tu initialise la classe { this.mc = mc; // la variable mc de le classe prend la valeur de mc que tu as passé en argument dans le constructeur System.out.println("handler"); // tu affiches handler if(TickHandler.hasIllegalTexture()) // si le joueur a une texture illégal Minecraft.getMinecraft().shutdown(); // tu coupes le jeu } @SubscribeEvent public void onRenderTick(RenderTickEvent event) { if (event.phase == Phase.START) // à chaque début de tick { test(); // tu appelle la fonction test System.out.println("handler"); // tu affiches handler } } private void test() { if(mc.thePlayer != null) // si le joueur n'est pas null { mc.thePlayer.setDead(); // tu le tue côté client ?!? } System.out.println("handler"); // tu affiches encore handler } public static boolean hasIllegalTexture() { ResourceLocation r = new ResourceLocation("minecraft:textures/blocks/stone.png"); ITextureObject textureObject = Minecraft.getMinecraft().getTextureManager().getTexture(r ); if(textureObject == null) { textureObject = new SimpleTexture(r); Minecraft.getMinecraft().getTextureManager().loadTexture(r, textureObject); } int id = textureObject.getGlTextureId(); try { int[] textureData = TextureUtil.readImageData(Minecraft.getMinecraft().getResourceManager(), r); for(int color : textureData) { int alpha = color >> 24 & 0xFF; if(alpha != 255) { return true; } } } catch(IOException e) { e.printStackTrace(); } return false; } }Donc au final tu ne vérifies que une fois la transparence, lorsque tu enregistres la classe. Donc sûrement lorsque la texture est null, ce qui explique que ça ne fait rien.
-
Petite questiion pour généré la classe tickHandler comme sa
classe principale:
:::public static TickHandler TickHandler; @EventHandler public void preinit(FMLPreInitializationEvent event) { TickHandler = new TickHandler(); } /java] ::: ou quelque chose comme sa? [spoiler[java]@EventHandler public void init(FMLInitializationEvent event) { proxy.registerRender(); System.out.println("init"); proxy.initialiseTickHandler(); PotionTest.loadEffects(); PotionTest.register(); NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); FMLCommonHandler.instance().bus().register(new AchivementBlockcasse()); } ```] CommonProxy: [spoiler```java package ed.enderdeath.mod.proxy; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent; import cpw.mods.fml.common.network.IGuiHandler; import ed.enderdeath.mod.Item.ItemBackPack; import ed.enderdeath.mod.common.InventoryBackPack; import ed.enderdeath.mod.common.TickHandler; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; public class CommonProxy implements IGuiHandler { private TickHandler t; @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 0: // The last parameter must be a multiple of 9 (e.g: 9, 18, 27, 54) // Condition to check if the player has the right item in hand if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemBackPack)) return null; return new ContainerBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54)); } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 0: // The last parameter must be a multiple of 9 (e.g: 9, 18, 27, 54) // Condition to check if the player has the right item in hand if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemBackPack)) return null; return new GuiBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54)); } return null; } public void registerRender() { System.out.println("server"); } public void registerEntityRenderer() { } public void registerItemRenderer() { } public void registerTileEntitySpecialRenderer() { } public void initialiseTickHandler() { t.hasIllegalTexture(); } } ```] -
Aucun des deux : FMLCommonHandler.bus().register(new TickHandler()); dans ton client proxy. Avec tes méthodes, en aucun cas tu disais à Minecraft d’appeler ta fonction chaque ti k
-
Comme sa?
FMLCommonHandler.instance().bus().register(new TickHandler(mc));
Sinon le jeu crash
Crash report :[19:29:34] [main/INFO] [GradleStart]: Extra: [] [19:29:35] [main/INFO] [GradleStart]: Running with arguments: [–userProperties, {}, --assetsDir, C:/Users/Eric/.gradle/caches/minecraft/assets, --assetIndex, 1.7.10, --accessToken, {REDACTED}, --version, 1.7.10, --tweakClass, cpw.mods.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker] [19:29:35] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker [19:29:35] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker [19:29:35] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker [19:29:35] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker [19:29:35] [main/INFO] [FML]: Forge Mod Loader version 7.99.40.1614 for Minecraft 1.7.10 loading [19:29:35] [main/INFO] [FML]: Java is Java HotSpot(TM) Client VM, version 1.8.0_71, running on Windows 8.1:x86:6.3, installed at C:\Program Files (x86)\Java\jre1.8.0_71 [19:29:35] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation [19:29:35] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker [19:29:35] [main/INFO] [GradleStart]: Injecting location in coremod cpw.mods.fml.relauncher.FMLCorePlugin [19:29:35] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin [19:29:35] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [19:29:35] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker [19:29:35] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker [19:29:35] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [19:29:35] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [19:29:35] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper [19:29:35] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work! [19:29:36] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing [19:29:36] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper [19:29:36] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker [19:29:36] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker [19:29:36] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.TerminalTweaker [19:29:36] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.TerminalTweaker [19:29:36] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main} [19:29:37] [main/INFO]: Setting user: Player692 [19:29:38] [Client thread/INFO]: LWJGL Version: 2.9.1 [19:29:38] [Client thread/INFO] [STDOUT]: [tv.twitch.StandardCoreAPI:<init>:16]: If on Windows, make sure to provide all of the necessary dll's as specified in the twitchsdk README. Also, make sure to set the PATH environment variable to point to the directory containing the dll's. [19:29:38] [Client thread/ERROR]: Couldn't initialize twitch stream [19:29:38] [Client thread/INFO] [STDOUT]: [cpw.mods.fml.client.SplashProgress:start:188]: –-- Minecraft Crash Report ---- // Daisy, daisy... Time: 08/04/16 19:29 Description: Loading screen debug info This is just a prompt for computer specs to be printed. THIS IS NOT A ERROR A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 8.1 (x86) version 6.3 Java Version: 1.8.0_71, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 968820048 bytes (923 MB) / 1046937600 bytes (998 MB) up to 1046937600 bytes (998 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 350.12' Renderer: 'GeForce GTX 745/PCIe/SSE2' [19:29:38] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization [19:29:38] [Client thread/INFO] [FML]: MinecraftForge v10.13.4.1614 Initialized [19:29:38] [Client thread/INFO] [FML]: Replaced 183 ore recipies [19:29:38] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization [19:29:39] [Client thread/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer [19:29:39] [Client thread/INFO] [FML]: Searching C:\Users\Eric\Desktop\EnderMod\eclipse\mods for mods [19:29:45] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load [19:29:45] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, enderdeath] at CLIENT [19:29:45] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, enderdeath] at SERVER [19:29:46] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:leo01418 [19:29:46] [Client thread/INFO] [FML]: Processing ObjectHolder annotations [19:29:46] [Client thread/INFO] [FML]: Found 341 ObjectHolder annotations [19:29:46] [Client thread/INFO] [FML]: Identifying ItemStackHolder annotations [19:29:46] [Client thread/INFO] [FML]: Found 0 ItemStackHolder annotations [19:29:46] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0 [19:29:46] [Client thread/INFO] [STDOUT]: [ed.enderdeath.mod.common.enderdeath:preInit:472]: preInit [19:29:46] [Client thread/INFO] [FML]: Applying holder lookups [19:29:46] [Client thread/INFO] [FML]: Holder lookups applied [19:29:46] [Client thread/INFO] [FML]: Injecting itemstacks [19:29:46] [Client thread/INFO] [FML]: Itemstack injection complete [19:29:46] [Sound Library Loader/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: [19:29:46] [Sound Library Loader/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem… [19:29:46] [Thread-8/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: Initializing LWJGL OpenAL [19:29:46] [Thread-8/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) [19:29:46] [Thread-8/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: OpenAL initialized. [19:29:46] [Sound Library Loader/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: [19:29:46] [Sound Library Loader/INFO]: Sound engine started [19:29:47] [Client thread/INFO]: Created: 16x16 textures/blocks-atlas [19:29:47] [Client thread/INFO]: Created: 16x16 textures/items-atlas [19:29:47] [Client thread/INFO] [STDOUT]: [ed.enderdeath.mod.proxy.ClientProxy:registerRender:68]: client [19:29:47] [Client thread/INFO] [STDOUT]: [ed.enderdeath.mod.common.enderdeath:init:2058]: init [19:29:47] [Client thread/INFO] [STDOUT]: [ed.enderdeath.mod.common.TickHandler:<init>:26]: handler [19:29:47] [Client thread/INFO] [FML]: Injecting itemstacks [19:29:47] [Client thread/INFO] [FML]: Itemstack injection complete [19:29:47] [Client thread/INFO] [STDOUT]: [ed.enderdeath.mod.common.enderdeath:postInit:2079]: Postinit [19:29:48] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 4 mods [19:29:48] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:leo01418 [19:29:48] [Client thread/INFO]: Created: 512x256 textures/blocks-atlas [19:29:48] [Client thread/INFO]: Created: 512x256 textures/items-atlas [19:29:48] [Client thread/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: [19:29:48] [Client thread/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: SoundSystem shutting down… [19:29:48] [Client thread/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:importantMessage:90]: Author: Paul Lamb, www.paulscode.com [19:29:48] [Client thread/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: [19:29:48] [Sound Library Loader/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: [19:29:48] [Sound Library Loader/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem… [19:29:49] [Thread-10/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: Initializing LWJGL OpenAL [19:29:49] [Thread-10/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) [19:29:49] [Thread-10/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: OpenAL initialized. [19:29:49] [Sound Library Loader/INFO] [STDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: [19:29:49] [Sound Library Loader/INFO]: Sound engine started [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: The following texture errors were found. [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: ================================================== [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: DOMAIN minecraft [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –------------------------------------------------ [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: domain minecraft is missing 1 texture [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: domain minecraft has 3 locations: [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: unknown resourcepack type net.minecraft.client.resources.DefaultResourcePack : Default [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: mod FML resources at C:\Users\Eric\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.4.1614-1.7.10\forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: mod Forge resources at C:\Users\Eric\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.4.1614-1.7.10\forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –----------------------- [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: The missing resources for domain minecraft are: [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/MISSING_ICON_ITEM_4180_InvisibleBlock.png [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –----------------------- [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: No other errors exist for domain minecraft [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: ================================================== [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: ================================================== [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: DOMAIN enderdeath [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –------------------------------------------------ [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: domain enderdeath is missing 5 textures [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: domain enderdeath has 1 location: [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: mod enderdeath resources at C:\Users\Eric\Desktop\EnderMod\bin [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –----------------------- [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: The missing resources for domain enderdeath are: [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/FeatherChestplate.png [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/FeatherHelmet.png [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/MultiTool.png [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/Wand.png [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/bow_pull3.png [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –----------------------- [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: No other errors exist for domain enderdeath [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: ================================================== [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: ================================================== [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: DOMAIN enderdeathfeatherleggings [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –------------------------------------------------ [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: domain enderdeathfeatherleggings is missing 1 texture [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: domain enderdeathfeatherleggings is missing a resource manager - it is probably a side-effect of automatic texture processing [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –----------------------- [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: The missing resources for domain enderdeathfeatherleggings are: [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/.png [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: –----------------------- [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: No other errors exist for domain enderdeathfeatherleggings [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: ================================================== [19:29:50] [Client thread/ERROR] [TEXTURE ERRORS]: +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= [19:29:50] [Client thread/ERROR] [FML]: Exception caught during firing event cpw.mods.fml.common.gameevent.TickEvent$RenderTickEvent@1b7e674: java.lang.NullPointerException at ed.enderdeath.mod.common.TickHandler.test(TickHandler.java:43) ~[TickHandler.class:?] at ed.enderdeath.mod.common.TickHandler.onRenderTick(TickHandler.java:36) ~[TickHandler.class:?] at cpw.mods.fml.common.eventhandler.ASMEventHandler_19_TickHandler_onRenderTick_RenderTickEvent.invoke(.dynamic) ~[?:?] at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54) ~[ASMEventHandler.class:?] at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140) [EventBus.class:?] at cpw.mods.fml.common.FMLCommonHandler.onRenderTickStart(FMLCommonHandler.java:335) [FMLCommonHandler.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1065) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_71] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?] at GradleStart.main(Unknown Source) [start/:?] [19:29:50] [Client thread/ERROR] [FML]: Index: 1 Listeners: [19:29:50] [Client thread/ERROR] [FML]: 0: NORMAL [19:29:50] [Client thread/ERROR] [FML]: 1: ASM: ed.enderdeath.mod.common.TickHandler@1eb9067 onRenderTick(Lcpw/mods/fml/common/gameevent/TickEvent$RenderTickEvent;)V [19:29:50] [Client thread/FATAL]: Unreported exception thrown! java.lang.NullPointerException at ed.enderdeath.mod.common.TickHandler.test(TickHandler.java:43) ~[TickHandler.class:?] at ed.enderdeath.mod.common.TickHandler.onRenderTick(TickHandler.java:36) ~[TickHandler.class:?] at cpw.mods.fml.common.eventhandler.ASMEventHandler_19_TickHandler_onRenderTick_RenderTickEvent.invoke(.dynamic) ~[?:?] at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54) ~[ASMEventHandler.class:?] at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140) ~[EventBus.class:?] at cpw.mods.fml.common.FMLCommonHandler.onRenderTickStart(FMLCommonHandler.java:335) ~[FMLCommonHandler.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1065) ~[Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_71] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?] at GradleStart.main(Unknown Source) [start/:?] [19:29:50] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: –-- Minecraft Crash Report ---- // Daisy, daisy... Time: 08/04/16 19:29 Description: Unexpected error java.lang.NullPointerException: Unexpected error at ed.enderdeath.mod.common.TickHandler.test(TickHandler.java:43) at ed.enderdeath.mod.common.TickHandler.onRenderTick(TickHandler.java:36) at cpw.mods.fml.common.eventhandler.ASMEventHandler_19_TickHandler_onRenderTick_RenderTickEvent.invoke(.dynamic) at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54) at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140) at cpw.mods.fml.common.FMLCommonHandler.onRenderTickStart(FMLCommonHandler.java:335) at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1065) at net.minecraft.client.Minecraft.run(Minecraft.java:962) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) at GradleStart.main(Unknown Source) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 8.1 (x86) version 6.3 Java Version: 1.8.0_71, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 781990368 bytes (745 MB) / 1046937600 bytes (998 MB) up to 1046937600 bytes (998 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 4 mods loaded, 4 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored UCHIJA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) UCHIJA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar) UCHIJA Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar) UCHIJA enderdeath{1.0} [leo01418] (bin) GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 350.12' Renderer: 'GeForce GTX 745/PCIe/SSE2' Launched Version: 1.7.10 LWJGL: 2.9.1 OpenGL: GeForce GTX 745/PCIe/SSE2 GL version 4.5.0 NVIDIA 350.12, NVIDIA Corporation GL Caps: Using GL 1.3 multitexturing. Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported. Anisotropic filtering is supported and maximum anisotropy is 16. Shaders are available because OpenGL 2.1 is supported. Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [Ore Finder 1.7+ by YellowW.zip] Current Language: English (US) Profiler Position: N/A (disabled) Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Anisotropic Filtering: Off (1) [19:29:50] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:398]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Eric\Desktop\EnderMod\eclipse\.\crash-reports\crash-2016-04-08_19.29.50-client.txt AL lib: (EE) alc_cleanup: 1 device not closed Java HotSpot(TM) Client VM warning: Using incremental CMS is deprecated and will likely be removed in a future releaseà ce que j’ai compris le jeu crash à cause de la ligne 43 et 36
dont c’est cela qui fait crash
dont sa@SubscribeEvent public void onRenderTick(RenderTickEvent event) { if (event.phase == Phase.START) // à chaque début de tick { test(); // tu appelle la fonction test /*Crash*/ System.out.println("handler"); // tu affiches handler } } private void test() { if(mc.thePlayer != null) // si le joueur n'est pas null /*Crash */ { mc.thePlayer.setDead(); // tu le tue côté client ?!? } System.out.println("handler"); // tu affiches encore handler }Eddit:J’ai éssayé de les enlevé,je peux lancé mon jeu mais quand j’ai testé sa marche pas
Ps:c’est peut étre que j’utilise un ressource pack x-ray qui met pas la stone transparent à 100%</init></init> -
"FMLCommonHandler.instance().bus().register(new TickHandler(mc)); " T’a mis quoi pour le “mc” ? Car il crash parce que justement c’est égal à null.