Résolu La teleportation
-
Bonjour tout le monde, j’ai épluché des dizaines de documentation sans trouver mon bonheur, je suis à la recherche du graal…
Et-il possible avec forge de téléporter un joueur à des coordonnées précise?
mon code qui actuellement crash:
package fr.baptiste.notifia.commande; import java.util.List; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommand; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; public class spawn extends CommandBase { EntityPlayer p; @Override public String getCommandName() { return "spawn"; } @Override public String getCommandUsage(ICommandSender p_71518_1_) { return "commande.spawn.usage"; } @Override public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) [/font] { p.setPositionAndUpdate(-417, 67, -487); } }
CrashLog:
[18:53:22] [Server thread/ERROR]: Couldn't process command: 'spawn' java.lang.NullPointerException at fr.baptiste.notifia.commande.spawn.processCommand(spawn.java:29) ~[spawn.class:?] at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:96) [CommandHandler.class:?] at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:788) [NetHandlerPlayServer.class:?] at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:764) [NetHandlerPlayServer.class:?] at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:47) [C01PacketChatMessage.class:?] at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:68) [C01PacketChatMessage.class:?] at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?] at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) [NetworkSystem.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) [MinecraftServer.class:?] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) [IntegratedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?] [18:53:22] [Client thread/INFO]: [CHAT] Cette commande a échoué suite à une erreur inconnue
je vous remercie d’ores et déjà de votre réponse,
amicalement BaptisteG -
Salut,
tu as la méthode EntityPlayer#setLocationAndUpdate, il me semble, ou quelque chose dans le genre. -
Hey Plaigon,
Merci de ta réponse, je vais creuser de se coter là.
Quelqu’un aurait plusieurs précis ? -
Tu initialises jamais p,* *normal donc que ça crash avec un NPE.
-
@Override public String getCommandUsage(ICommandSender p_71518_1_) { return "/spawn"; }
éssaie ça dedans
-
Salut,
Il faut utiliser :
EntityPlayerMP playermp = this.getCommandSenderAsPlayer(sender);
pour obtenir le joueur. Retires ta variable p qui est null et forcement cause un NullPointerException. -
Salut Robin,
Merci de ton aide mais la ligne que tu m’as fournie :EntityPlayerMP playermp = this.getCommandSenderAsPlayer(sender);
Renvoie une erreur sur le “(sender)” que je n’arrive pas à régler.
ERREUR:
sender cannot be resolved to a variable
Merci
-
Remplace sender par p_71518_1_
-
Même problème… erreur sur le [font=monospacep_71518_1_]
package fr.baptiste.notifia.commande; import java.util.List; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommand; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.IChatComponent; import net.minecraft.world.World; public class spawn extends CommandBase { EntityPlayerMP playermp = this.getCommandSenderAsPlayer(p_71518_1_); @Override public String getCommandName() { return "spawn"; } @Override public String getCommandUsage(ICommandSender p_71518_1_) { return "commande.spawn.usage"; } @Override public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) { playermp.setPositionAndUpdate(-417, 67, -487); } }
ERREUR:
cannot be resolved to a variable
-
Oups par p_71515_1_
Bref, tu ne devrais pas avoir de difficulté, c’est du Java.
Tu vois bien que t’as un paramètre ICommandSender, donc sers toi en pour compléter la méthode getCommandSenderAsPlayer -
C’est surtout que la ligne en question doit être dans la fonction processCommand et pas en haut de de la classe.
-
Et PAS en haut de la classe tu veux dire ?
-
En effet il manque le pas.
-
Salut
Merci d’avoir apporté l’aide que j’attendais,
l’erreur était sous mes yeux mais je ne la voyais pas. Je marque le poste en résolu, bonne soirée.Amicalement,
Baptiste