Mod [net.minecraft.command.CommandHandler]: Couldn't process command: 'spawn'

Aang23

= 157
16 Mai 2017
176
20
75
20
Je suis en création d'un mod ajoutant des fonctionnalitées de TP simple, comme /spawn, /warp, etc.
Après avoir utilisé le /spawn sans problème, voici ce que j'obtient régulièrement :
[11:42:21] [Server thread/WARN] [net.minecraft.command.CommandHandler]: Couldn't process command: 'spawn'
java.lang.NullPointerException
at net.minecraft.world.Teleporter.placeInExistingPortal(Teleporter.java:136) ~[Teleporter.class:?]
at net.minecraft.world.Teleporter.placeInPortal(Teleporter.java:39) ~[Teleporter.class:?]
at net.minecraft.server.management.PlayerList.transferEntityToWorld(PlayerList.java:736) ~[PlayerList.class:?]
at net.minecraft.server.management.PlayerList.transferPlayerToDimension(PlayerList.java:643) ~[PlayerList.class:?]
at net.minecraft.server.management.PlayerList.changePlayerDimension(PlayerList.java:630) ~[PlayerList.class:?]
at net.minecraft.entity.player.EntityPlayerMP.changeDimension(EntityPlayerMP.java:651) ~[EntityPlayerMP.class:?]
at com.teleport.mod.commands.CommandSpawn.execute(CommandSpawn.java:39) ~[CommandSpawn.class:?]
at net.minecraft.command.CommandHandler.tryExecute(CommandHandler.java:111) [CommandHandler.class:?]
at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:90) [CommandHandler.class:?]
at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:955) [NetHandlerPlayServer.class:?]
at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:931) [NetHandlerPlayServer.class:?]
at net.minecraft.network.play.client.CPacketChatMessage.processPacket(CPacketChatMessage.java:47) [CPacketChatMessage.class:?]
at net.minecraft.network.play.client.CPacketChatMessage.processPacket(CPacketChatMessage.java:8) [CPacketChatMessage.class:?]
at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:21) [PacketThreadUtil$1.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
at net.minecraft.util.Util.runTask(Util.java:28) [Util.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:743) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:408) [DedicatedServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:688) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:537) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]

Et le code ( équivalent dans le warp et spawn )
package com.teleport.mod.commands;
import com.teleport.mod.Main;
import com.teleport.mod.events.RWlocs;

import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;


public class CommandWarp extends CommandBase {

@Override
public String getCommandName()
{
return "warp";
}

@Override
public String getCommandUsage(ICommandSender icommandsender)
{
return "/warp <list/name/set>";
}

@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
if(!(args[0].equals("list") || args[0].equals("set"))&& sender.canCommandSenderUseCommand(3, "com.teleport.mod.commands.warp")){
if(Main.locs.containsKey("warp"+args[0]+"w")){
int w = Integer.parseInt((String) Main.locs.get("warp"+args[0]+"w"));
int x = Integer.parseInt((String) Main.locs.get("warp"+args[0]+"px"));
int y = Integer.parseInt((String) Main.locs.get("warp"+args[0]+"py"));
int z = Integer.parseInt((String) Main.locs.get("warp"+args[0]+"pz"));

sender.addChatMessage(new TextComponentString(TextFormatting.GREEN+"Teleporting to warp "+TextFormatting.YELLOW+args[0]+TextFormatting.GREEN+"..."));
sender.getCommandSenderEntity().changeDimension(w);
sender.getCommandSenderEntity().setPositionAndUpdate(x, y, z);
} else sender.addChatMessage(new TextComponentString(TextFormatting.RED+"Warp "+TextFormatting.YELLOW+args[0]+TextFormatting.GREEN+" does not exist."));
}
else if(args[0].equals("list") && sender.canCommandSenderUseCommand(2, "com.teleport.mod.commands.listwarp")){
sender.addChatMessage(new TextComponentString(TextFormatting.GREEN+"Spawn set at you actual world and location."));
}
else if(args[0].equals("set") && sender.canCommandSenderUseCommand(2, "com.teleport.mod.commands.setwarp")){
Main.locs.put("warp"+args[1]+"px", String.format("%d",sender.getPosition().getX()));
Main.locs.put("warp"+args[1]+"py", String.format("%d",sender.getPosition().getY()));
Main.locs.put("warp"+args[1]+"pz", String.format("%d",sender.getPosition().getZ()));
Main.locs.put("warp"+args[1]+"w", String.format("%d",sender.getEntityWorld().provider.getDimension()));
RWlocs.write();
sender.addChatMessage(new TextComponentString(TextFormatting.GREEN+"Warp "+TextFormatting.YELLOW+args[1]+TextFormatting.GREEN+" set at you actual world and location."));
}
}
}