Minecraft Dimension Modding崩溃

时间:2018-06-10 17:01:57

标签: java eclipse minecraft minecraft-forge

我已经在我的mod中创建了一个维度,并且右键单击的项目应该将您传送到所述维度,但是当我右键单击该项目时我崩溃了。代码中没有错误,我无法弄清楚在日志中创建问题的原因。我使用内置的平板块提供程序生成维度。我可以提供您需要的任何文件。很抱歉任何奇怪的格式,我都不习惯这个。

经度:

---- Minecraft Crash Report ----
// This doesn't make any sense!

Time: 6/10/18 11:26 AM
Description: Unexpected error

java.lang.ClassCastException: net.minecraft.client.multiplayer.WorldClient cannot be cast to net.minecraft.world.WorldServer
at com.killer.sheerpig.ItemSheerTP.onItemRightClick(ItemSheerTP.java:42)
at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164)
at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430)
at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1558)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:2045)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1040)
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:

-- Head --
Stacktrace:
at com.killer.sheerpig.ItemSheerTP.onItemRightClick(ItemSheerTP.java:42)
at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164)
at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430)
at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1558)

-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityClientPlayerMP['Player629'/142, l='MpServer', x=-210.65, y=73.62, z=-229.70]]
Chunk stats: MultiplayerChunkCache: 289, 289
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options: 
Level spawn location: World: (-207,64,-241), Chunk: (at 1,4,15 in -13,-16; contains blocks -208,0,-256 to -193,255,-241), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
Level time: 6986 game time, 6986 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 97 total; [EntityBat['Bat'/522, l='MpServer', x=-277.94, y=17.33, z=-158.72], EntityZombie['Zombie'/11, l='MpServer', x=-284.91, y=21.00, z=-257.53], EntityZombie['Zombie'/12, l='MpServer', x=-288.50, y=20.00, z=-260.50], EntitySkeleton['Skeleton'/13, l='MpServer', x=-287.63, y=20.00, z=-259.69], EntityZombie['Zombie'/15, l='MpServer', x=-274.00, y=11.00, z=-288.44], EntitySkeleton['Skeleton'/16, l='MpServer', x=-283.88, y=19.00, z=-277.50], EntityZombie['Zombie'/17, l='MpServer', x=-278.03, y=21.00, z=-268.31], EntityBat['Bat'/18, l='MpServer', x=-273.16, y=50.17, z=-234.47], EntityZombie['Zombie'/19, l='MpServer', x=-278.06, y=19.00, z=-155.63], EntityBat['Bat'/278, l='MpServer', x=-284.24, y=21.07, z=-259.23], EntityZombie['Zombie'/24, l='MpServer', x=-271.31, y=49.00, z=-308.59], EntityCreeper['Creeper'/25, l='MpServer', x=-272.00, y=50.00, z=-309.47], EntityHorse['Donkey'/26, l='MpServer', x=-267.88, y=67.00, z=-306.97], EntityPig['Pig'/28, l='MpServer', x=-257.88, y=67.00, z=-290.09], EntityPig['Pig'/29, l='MpServer', x=-265.47, y=67.00, z=-290.31], EntityPig['Pig'/30, l='MpServer', x=-257.81, y=67.00, z=-294.78], EntitySkeleton['Skeleton'/31, l='MpServer', x=-266.13, y=25.00, z=-280.56], EntitySkeleton['Skeleton'/32, l='MpServer', x=-261.50, y=26.00, z=-277.50], EntityCreeper['Creeper'/33, l='MpServer', x=-256.03, y=21.00, z=-286.34], EntityEnderman['Enderman'/34, l='MpServer', x=-257.88, y=22.00, z=-246.50], EntityChicken['Chicken'/35, l='MpServer', x=-260.44, y=81.00, z=-253.53], EntityEnderman['Enderman'/36, l='MpServer', x=-262.69, y=13.00, z=-210.25], EntityCreeper['Creeper'/37, l='MpServer', x=-253.19, y=17.69, z=-210.63], EntitySkeleton['Skeleton'/38, l='MpServer', x=-264.13, y=40.00, z=-222.41], EntitySkeleton['Skeleton'/39, l='MpServer', x=-268.69, y=14.00, z=-196.78], EntitySkeleton['Skeleton'/40, l='MpServer', x=-267.34, y=18.00, z=-205.03], EntitySkeleton['Skeleton'/41, l='MpServer', x=-268.38, y=17.00, z=-204.22], EntityWitch['Witch'/42, l='MpServer', x=-270.84, y=17.00, z=-169.50], EntitySkeleton['Skeleton'/43, l='MpServer', x=-261.94, y=18.00, z=-171.50], EntitySkeleton['Skeleton'/44, l='MpServer', x=-257.50, y=18.00, z=-165.50], EntityZombie['Zombie'/45, l='MpServer', x=-260.50, y=17.00, z=-167.50], EntityPig['Pig'/49, l='MpServer', x=-246.19, y=67.00, z=-289.78], EntityHorse['Donkey'/50, l='MpServer', x=-255.88, y=67.00, z=-289.97], EntityCreeper['Creeper'/51, l='MpServer', x=-255.63, y=21.00, z=-287.22], EntityCreeper['Creeper'/52, l='MpServer', x=-255.69, y=21.00, z=-284.41], EntityWolf['Wolf'/53, l='MpServer', x=-254.84, y=67.00, z=-287.56], EntityBat['Bat'/54, l='MpServer', x=-247.66, y=22.70, z=-262.75], EntityBat['Bat'/55, l='MpServer', x=-248.41, y=24.00, z=-268.13], EntityBat['Bat'/56, l='MpServer', x=-246.72, y=22.95, z=-259.47], EntityWolf['Wolf'/57, l='MpServer', x=-255.47, y=67.00, z=-274.22], EntitySheep['Sheep'/58, l='MpServer', x=-252.16, y=78.00, z=-248.78], EntityChicken['Chicken'/59, l='MpServer', x=-255.44, y=78.00, z=-250.44], EntityChicken['Chicken'/60, l='MpServer', x=-248.16, y=78.00, z=-243.66], EntitySpider['Spider'/61, l='MpServer', x=-244.47, y=16.00, z=-235.72], EntityCreeper['Creeper'/62, l='MpServer', x=-254.47, y=17.00, z=-207.97], EntityCreeper['Creeper'/63, l='MpServer', x=-255.72, y=18.00, z=-208.44], EntitySkeleton['Skeleton'/64, l='MpServer', x=-253.53, y=16.00, z=-207.72], EntityBat['Bat'/65, l='MpServer', x=-253.94, y=14.00, z=-206.63], EntitySkeleton['Skeleton'/74, l='MpServer', x=-222.50, y=27.00, z=-273.50], EntityBat['Bat'/75, l='MpServer', x=-212.25, y=14.10, z=-260.50], EntitySkeleton['Skeleton'/76, l='MpServer', x=-214.09, y=25.00, z=-266.66], EntitySkeleton['Skeleton'/78, l='MpServer', x=-211.54, y=26.02, z=-222.71], EntitySheep['Sheep'/79, l='MpServer', x=-212.19, y=62.09, z=-224.53], EntitySquid['Squid'/80, l='MpServer', x=-224.84, y=38.34, z=-198.50], EntityChicken['Chicken'/81, l='MpServer', x=-195.56, y=61.90, z=-303.44], EntityBat['Bat'/82, l='MpServer', x=-199.56, y=41.23, z=-274.25], EntityZombie['Zombie'/83, l='MpServer', x=-208.47, y=18.06, z=-267.16], EntitySpider['Spider'/84, l='MpServer', x=-200.72, y=16.00, z=-269.28], EntitySkeleton['Skeleton'/85, l='MpServer', x=-206.50, y=22.00, z=-273.09], EntityZombie['Zombie'/86, l='MpServer', x=-194.47, y=18.00, z=-268.97], EntityBat['Bat'/87, l='MpServer', x=-202.41, y=15.10, z=-255.78], EntityCreeper['Creeper'/88, l='MpServer', x=-203.50, y=16.00, z=-244.69], EntityCreeper['Creeper'/89, l='MpServer', x=-206.34, y=21.00, z=-229.00], EntityZombie['Zombie'/90, l='MpServer', x=-204.50, y=25.00, z=-211.06], EntityBat['Bat'/91, l='MpServer', x=-202.69, y=23.10, z=-221.31], EntityCreeper['Creeper'/92, l='MpServer', x=-191.88, y=20.00, z=-217.75], EntityBat['Bat'/96, l='MpServer', x=-186.44, y=17.10, z=-274.25], EntityZombie['Zombie'/97, l='MpServer', x=-187.88, y=17.00, z=-270.38], EntityCreeper['Creeper'/98, l='MpServer', x=-181.03, y=13.00, z=-225.53], EntitySkeleton['Skeleton'/99, l='MpServer', x=-189.50, y=33.00, z=-239.50], EntitySkeleton['Skeleton'/100, l='MpServer', x=-186.03, y=22.00, z=-216.56], EntityBat['Bat'/106, l='MpServer', x=-162.59, y=19.10, z=-264.75], EntityBat['Bat'/107, l='MpServer', x=-165.75, y=20.23, z=-261.47], EntitySquid['Squid'/108, l='MpServer', x=-166.19, y=50.81, z=-245.97], EntitySkeleton['Skeleton'/109, l='MpServer', x=-167.09, y=13.00, z=-235.63], EntitySquid['Squid'/112, l='MpServer', x=-156.94, y=49.34, z=-277.22], EntityEnderman['Enderman'/113, l='MpServer', x=-156.69, y=16.00, z=-249.25], EntityZombie['Zombie'/114, l='MpServer', x=-147.56, y=32.00, z=-254.75], EntityCreeper['Creeper'/115, l='MpServer', x=-154.50, y=34.00, z=-255.50], EntityCreeper['Creeper'/116, l='MpServer', x=-159.50, y=14.00, z=-219.50], EntitySkeleton['Skeleton'/117, l='MpServer', x=-146.50, y=12.00, z=-204.94], EntityZombie['Zombie'/118, l='MpServer', x=-146.31, y=14.00, z=-187.06], EntityZombie['Zombie'/119, l='MpServer', x=-144.44, y=17.00, z=-171.56], EntityZombie['Zombie'/120, l='MpServer', x=-144.50, y=17.00, z=-172.50], EntityCreeper['Creeper'/121, l='MpServer', x=-144.53, y=19.00, z=-167.97], EntitySkeleton['Skeleton'/122, l='MpServer', x=-147.06, y=22.00, z=-150.53], EntityZombie['Zombie'/123, l='MpServer', x=-144.50, y=21.00, z=-159.50], EntityBat['Bat'/125, l='MpServer', x=-138.56, y=31.10, z=-251.72], EntityZombie['Zombie'/126, l='MpServer', x=-137.27, y=26.00, z=-246.47], EntityCreeper['Creeper'/127, l='MpServer', x=-142.50, y=28.00, z=-243.50], EntityCreeper['Creeper'/128, l='MpServer', x=-141.50, y=31.00, z=-254.50], EntitySkeleton['Skeleton'/129, l='MpServer', x=-132.84, y=24.00, z=-247.78], EntityBat['Bat'/130, l='MpServer', x=-141.22, y=26.45, z=-257.66], EntityZombie['Zombie'/134, l='MpServer', x=-143.50, y=17.00, z=-172.50], EntityBat['Bat'/135, l='MpServer', x=-145.88, y=22.73, z=-149.25], EntityZombie['Zombie'/136, l='MpServer', x=-142.53, y=22.00, z=-153.94], EntityClientPlayerMP['Player629'/142, l='MpServer', x=-210.65, y=73.62, z=-229.70]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2567)
at net.minecraft.client.Minecraft.run(Minecraft.java:991)
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)

-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_161, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 864018640 bytes (823 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 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: 13, tallocated: 95
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 6 mods loaded, 6 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJAAAA   mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
UCHIJAAAA   FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) 
UCHIJAAAA   Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) 
UCHIJAAAA   examplemod{1.0} [Example Mod] (bin) 
UCHIJAAAA   killer_galacticmod{1.0} [killer_galacticmod] (bin) 
UCHIJAAAA   sheerpig{1.0} [sheerpig] (bin) 
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 397.64' Renderer: 'GeForce GTX 1080/PCIe/SSE2'
Launched Version: 1.7.10
LWJGL: 2.9.1
OpenGL: GeForce GTX 1080/PCIe/SSE2 GL version 4.6.0 NVIDIA 397.64, 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: []
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)



世界提供者:

package com.killer.sheerpig;

import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.WorldChunkManagerHell;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.IChunkProvider;

public class WorldProviderSheer extends WorldProvider
{
public void registerWorldChunkManager()
{
    this.worldChunkMgr = new WorldChunkManagerHell(BiomeGenBase.desert/*change*/, 0.1F);
    this.dimensionId = SheerPig.sheerdimension;
}

@Override
public String getSaveFolder()
{
    return "DIM-Sheer";
}

@Override
public String getWelcomeMessage()
{
    return "Entering Pig Land";
}

@Override
public String getDepartMessage()
{
    return "Leaving Pig Land";
}

@Override
public boolean canRespawnHere()
{
    return true;
}

@Override
public IChunkProvider createChunkGenerator()
{
    return new ChunkProviderSheer(worldObj, worldObj.getSeed(), true, field_82913_c);
}

@Override
public String getDimensionName()
{
    return "Sheer";
}

//@Override
public ChunkCoordinates getEnterancePortalLocation()
{
    return null;
}

@Override
public boolean canDoLightning(Chunk chunk)
{
    return true;
}

@Override
public boolean canDoRainSnowIce(Chunk chunk)
{
    return false;
}
}



块提供者:

package com.killer.sheerpig;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.init.Blocks;
import net.minecraft.util.IProgressUpdate;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.chunk.storage.ExtendedBlockStorage;
import net.minecraft.world.gen.FlatGeneratorInfo;
import net.minecraft.world.gen.FlatLayerInfo;
import net.minecraft.world.gen.MapGenBase;
import net.minecraft.world.gen.feature.WorldGenDungeons;
import net.minecraft.world.gen.feature.WorldGenLakes;
import net.minecraft.world.gen.structure.MapGenMineshaft;
import net.minecraft.world.gen.structure.MapGenScatteredFeature;
import net.minecraft.world.gen.structure.MapGenStronghold;
import net.minecraft.world.gen.structure.MapGenStructure;
import net.minecraft.world.gen.structure.MapGenVillage;

public class ChunkProviderSheer implements IChunkProvider
{
private World worldObj;
private Random random;
private final Block[] cachedBlockIDs = new Block[256];
private final byte[] cachedBlockMetadata = new byte[256];
private final FlatGeneratorInfo flatWorldGenInfo;
private final List structureGenerators = new ArrayList();
private final boolean hasDecoration;
private final boolean hasDungeons;
private WorldGenLakes waterLakeGenerator;
private WorldGenLakes lavaLakeGenerator;
private static final String __OBFID = "CL_00000391";

public ChunkProviderSheer(World p_i2004_1_, long p_i2004_2_, boolean p_i2004_4_, String p_i2004_5_)
{
    this.worldObj = p_i2004_1_;
    this.random = new Random(p_i2004_2_);
    this.flatWorldGenInfo = FlatGeneratorInfo.createFlatGeneratorFromString(p_i2004_5_);

    if (p_i2004_4_)
    {
        Map map = this.flatWorldGenInfo.getWorldFeatures();

        if (map.containsKey("village"))
        {
            Map map1 = (Map)map.get("village");

            if (!map1.containsKey("size"))
            {
                map1.put("size", "1");
            }

            this.structureGenerators.add(new MapGenVillage(map1));
        }

        if (map.containsKey("biome_1"))
        {
            this.structureGenerators.add(new MapGenScatteredFeature((Map)map.get("biome_1")));
        }

        if (map.containsKey("mineshaft"))
        {
            this.structureGenerators.add(new MapGenMineshaft((Map)map.get("mineshaft")));
        }

        if (map.containsKey("stronghold"))
        {
            this.structureGenerators.add(new MapGenStronghold((Map)map.get("stronghold")));
        }
    }

    this.hasDecoration = this.flatWorldGenInfo.getWorldFeatures().containsKey("decoration");

    if (this.flatWorldGenInfo.getWorldFeatures().containsKey("lake"))
    {
        this.waterLakeGenerator = new WorldGenLakes(Blocks.water);
    }

    if (this.flatWorldGenInfo.getWorldFeatures().containsKey("lava_lake"))
    {
        this.lavaLakeGenerator = new WorldGenLakes(Blocks.lava);
    }

    this.hasDungeons = this.flatWorldGenInfo.getWorldFeatures().containsKey("dungeon");
    Iterator iterator = this.flatWorldGenInfo.getFlatLayers().iterator();

    while (iterator.hasNext())
    {
        FlatLayerInfo flatlayerinfo = (FlatLayerInfo)iterator.next();

        for (int j = flatlayerinfo.getMinY(); j < flatlayerinfo.getMinY() + flatlayerinfo.getLayerCount(); ++j)
        {
            this.cachedBlockIDs[j] = flatlayerinfo.func_151536_b();
            this.cachedBlockMetadata[j] = (byte)flatlayerinfo.getFillBlockMeta();
        }
    }
}

/**
 * loads or generates the chunk at the chunk location specified
 */
public Chunk loadChunk(int p_73158_1_, int p_73158_2_)
{
    return this.provideChunk(p_73158_1_, p_73158_2_);
}

/**
 * Will return back a chunk, if it doesn't exist and its not a MP client it will generates all the blocks for the
 * specified chunk from the map seed and chunk seed
 */
public Chunk provideChunk(int p_73154_1_, int p_73154_2_)
{
    Chunk chunk = new Chunk(this.worldObj, p_73154_1_, p_73154_2_);
    int l;

    for (int k = 0; k < this.cachedBlockIDs.length; ++k)
    {
        Block block = this.cachedBlockIDs[k];

        if (block != null)
        {
            l = k >> 4;
            ExtendedBlockStorage extendedblockstorage = chunk.getBlockStorageArray()[l];

            if (extendedblockstorage == null)
            {
                extendedblockstorage = new ExtendedBlockStorage(k, !this.worldObj.provider.hasNoSky);
                chunk.getBlockStorageArray()[l] = extendedblockstorage;
            }

            for (int i1 = 0; i1 < 16; ++i1)
            {
                for (int j1 = 0; j1 < 16; ++j1)
                {
                    extendedblockstorage.func_150818_a(i1, k & 15, j1, block);
                    extendedblockstorage.setExtBlockMetadata(i1, k & 15, j1, this.cachedBlockMetadata[k]);
                }
            }
        }
    }

    chunk.generateSkylightMap();
    BiomeGenBase[] abiomegenbase = this.worldObj.getWorldChunkManager().loadBlockGeneratorData((BiomeGenBase[])null, p_73154_1_ * 16, p_73154_2_ * 16, 16, 16);
    byte[] abyte = chunk.getBiomeArray();

    for (l = 0; l < abyte.length; ++l)
    {
        abyte[l] = (byte)abiomegenbase[l].biomeID;
    }

    Iterator iterator = this.structureGenerators.iterator();

    while (iterator.hasNext())
    {
        MapGenBase mapgenbase = (MapGenBase)iterator.next();
        mapgenbase.func_151539_a(this, this.worldObj, p_73154_1_, p_73154_2_, (Block[])null);
    }

    chunk.generateSkylightMap();
    return chunk;
}

/**
 * Checks to see if a chunk exists at x, y
 */
public boolean chunkExists(int p_73149_1_, int p_73149_2_)
{
    return true;
}

/**
 * Populates chunk with ores etc etc
 */
public void populate(IChunkProvider p_73153_1_, int p_73153_2_, int p_73153_3_)
{
    int k = p_73153_2_ * 16;
    int l = p_73153_3_ * 16;
    BiomeGenBase biomegenbase = this.worldObj.getBiomeGenForCoords(k + 16, l + 16);
    boolean flag = false;
    this.random.setSeed(this.worldObj.getSeed());
    long i1 = this.random.nextLong() / 2L * 2L + 1L;
    long j1 = this.random.nextLong() / 2L * 2L + 1L;
    this.random.setSeed((long)p_73153_2_ * i1 + (long)p_73153_3_ * j1 ^ this.worldObj.getSeed());
    Iterator iterator = this.structureGenerators.iterator();

    while (iterator.hasNext())
    {
        MapGenStructure mapgenstructure = (MapGenStructure)iterator.next();
        boolean flag1 = mapgenstructure.generateStructuresInChunk(this.worldObj, this.random, p_73153_2_, p_73153_3_);

        if (mapgenstructure instanceof MapGenVillage)
        {
            flag |= flag1;
        }
    }

    int l1;
    int i2;
    int j2;

    if (this.waterLakeGenerator != null && !flag && this.random.nextInt(4) == 0)
    {
        l1 = k + this.random.nextInt(16) + 8;
        i2 = this.random.nextInt(256);
        j2 = l + this.random.nextInt(16) + 8;
        this.waterLakeGenerator.generate(this.worldObj, this.random, l1, i2, j2);
    }

    if (this.lavaLakeGenerator != null && !flag && this.random.nextInt(8) == 0)
    {
        l1 = k + this.random.nextInt(16) + 8;
        i2 = this.random.nextInt(this.random.nextInt(248) + 8);
        j2 = l + this.random.nextInt(16) + 8;

        if (i2 < 63 || this.random.nextInt(10) == 0)
        {
            this.lavaLakeGenerator.generate(this.worldObj, this.random, l1, i2, j2);
        }
    }

    if (this.hasDungeons)
    {
        for (l1 = 0; l1 < 8; ++l1)
        {
            i2 = k + this.random.nextInt(16) + 8;
            j2 = this.random.nextInt(256);
            int k1 = l + this.random.nextInt(16) + 8;
            (new WorldGenDungeons()).generate(this.worldObj, this.random, i2, j2, k1);
        }
    }

    if (this.hasDecoration)
    {
        biomegenbase.decorate(this.worldObj, this.random, k, l);
    }
}

/**
 * Two modes of operation: if passed true, save all Chunks in one go.  If passed false, save up to two chunks.
 * Return true if all chunks have been saved.
 */
public boolean saveChunks(boolean p_73151_1_, IProgressUpdate p_73151_2_)
{
    return true;
}

/**
 * Save extra data not associated with any Chunk.  Not saved during autosave, only during world unload.  Currently
 * unimplemented.
 */
public void saveExtraData() {}

/**
 * Unloads chunks that are marked to be unloaded. This is not guaranteed to unload every such chunk.
 */
public boolean unloadQueuedChunks()
{
    return false;
}

/**
 * Returns if the IChunkProvider supports saving.
 */
public boolean canSave()
{
    return true;
}

/**
 * Converts the instance data to a readable string.
 */
public String makeString()
{
    return "FlatLevelSource";
}

/**
 * Returns a list of creatures of the specified type that can spawn at the given location.
 */
public List getPossibleCreatures(EnumCreatureType p_73155_1_, int p_73155_2_, int p_73155_3_, int p_73155_4_)
{
    BiomeGenBase biomegenbase = this.worldObj.getBiomeGenForCoords(p_73155_2_, p_73155_4_);
    return biomegenbase.getSpawnableList(p_73155_1_);
}

public ChunkPosition func_147416_a(World p_147416_1_, String p_147416_2_, int p_147416_3_, int p_147416_4_, int p_147416_5_)
{
    if ("Stronghold".equals(p_147416_2_))
    {
        Iterator iterator = this.structureGenerators.iterator();

        while (iterator.hasNext())
        {
            MapGenStructure mapgenstructure = (MapGenStructure)iterator.next();

            if (mapgenstructure instanceof MapGenStronghold)
            {
                return mapgenstructure.func_151545_a(p_147416_1_, p_147416_3_, p_147416_4_, p_147416_5_);
            }
        }
    }

    return null;
}

public int getLoadedChunkCount()
{
    return 0;
}

public void recreateStructures(int p_82695_1_, int p_82695_2_)
{
    Iterator iterator = this.structureGenerators.iterator();

    while (iterator.hasNext())
    {
        MapGenStructure mapgenstructure = (MapGenStructure)iterator.next();
        mapgenstructure.func_151539_a(this, this.worldObj, p_82695_1_, p_82695_2_, (Block[])null);
    }
}
}



传送器项目:

package com.killer.sheerpig;

import net.minecraft.item.Item;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.DimensionManager;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;

import com.killer.sheerpig.WorldProviderSheer;

public class ItemSheerTP extends Item
{
public static int SheerDimensionId = DimensionManager.getNextFreeDimId();
public String name = "SheerTP";

public ItemSheerTP()
{
    setUnlocalizedName(SheerPig.MODID + "_" + name);
    setCreativeTab(SheerPig.sheerTab);
    setTextureName(SheerPig.MODID + ":" + name);
    maxStackSize = 1;
}

@Override
public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player)
{
    if (player.dimension == SheerDimensionId)
    {

    }
    else
    {
        WorldServer worldserver = (WorldServer) world;
        EntityPlayerMP playerMP = (EntityPlayerMP) player;
        playerMP.mcServer.getConfigurationManager().transferPlayerToDimension(playerMP, 229, new SheerTeleporter(worldserver));
    }
return item;
}
}

1 个答案:

答案 0 :(得分:0)

java.lang.ClassCastException: 
net.minecraft.client.multiplayer.WorldClient cannot be cast to
net.minecraft.world.WorldServer
at com.killer.sheerpig.ItemSheerTP.onItemRightClick(ItemSheerTP.java:42)

再次阅读错误消息,您将看到问题出在最后一个代码段中,位于onItemRightClick的else块中的第一个命令。

问题在于,通过强制转换,您明确指出该行中的“world类型为WorldServer”。但它显然不是 - 而是WorldClient类型。

您可能更喜欢this之类的内容,尤其是此代码段:

Minecraft mc = Minecraft.getMinecraft();
if (mc.getIntegratedServer())
{
    worldServer = mc.getIntegratedServer().worldServerForDimension(mc.thePlayer.dimension);
}
else if (MinecraftServer.getServer())
{
    worldServer = MinecraftServer.getServer().worldServerForDimension(mc.thePlayer.dimension);
}

也许这有帮助,也许它没有。但问题是,world并非在所有情况下都是WorldServer 可能的原因是您在服务器端和客户端混淆。 As is stated in this forum似乎Entity.worldobj在服务器端是WorldServer