すりごまの鯖缶?ブログ 2缶目

鯖管のことだったりプログラミングのことだったりマイクラのことだったり

マイクラMOD開発

MOD開発はよくわからん。
MemoWikiで入門記事書いてるけど、実を言うと自分も始めたばっかでよくわからないことばっかである。
今一番困ってるのが、通常のワールドとネザーの行き来。
ググって出てくるコードを試したけどうまく動かん。

MinecraftServer mserver = MinecraftServer.getServer();
EntityPlayerMP mp = mserver.getServerConfigurationManager(mserver).getPlayerForUsername(p.username);
if(!mp.isRiding()){
	if(rand.nextInt(10)<1){
		int toDimentionID;
		if(par1World.provider.dimensionId==0){ toDimentionID = -1; }
		else{ toDimentionID = 0; }
		mp.timeUntilPortal = 10;
		mp.triggerAchievement(AchievementList.portal);
		WorldServer ws = mserver.worldServerForDimension(toDimentionID);
		mp.worldObj.theProfiler.startSection("reposition");
		mp.mcServer.getConfigurationManager().transferPlayerToDimension(mp, toDimentionID,new BugTelepoter(ws));
	}
}

pはnet.minecraft.client.entity.EntityClientPlayerMP。
中身はModLoader.getMinecraftInstance().thePlayer、つまり、操作してるユーザー。
randはjava.util.Random。
このコードで飛ぶことはできるんだけど、なんかの関係でネザーにうまく飛べなくてワールドが読み込まれなくなったり、
エラー例 その1 : Exception ticking world
エラー例 その2 : f:id:surigomaxxxxxxx:20140105230538p:plain

原因がわかる方いたら教えて下さい。。。