Minecraft Dimension Моддинг Сбои - PullRequest
0 голосов
/ 10 июня 2018

Я создал измерение в своем моде, и предмет, который при щелчке правой кнопкой мыши должен телепортировать вас в указанное измерение, но я вылетаю, когда щелкаю правой кнопкой мыши по предмету.В коде нет ошибок, и я не могу понять, что создает проблему в журнале.Я создаю измерение, используя встроенный провайдер плоских блоков.Любые файлы, которые вам могут понадобиться, я могу предоставить.Извините за странное форматирование, я не совсем к этому привык.Журнал:

---- 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 голосов
/ 10 июня 2018
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)

Прочтите сообщение об ошибке еще раз, и вы увидите, что проблема заключается в вашем последнем фрагменте кода, в первой команде в блоке else onItemRightClick.

Проблема в том, что вы явно указали "world типа WorldServer" в этой строке путем его приведения.Но это, очевидно, нет - вместо этого он имеет тип WorldClient.

Вы, вероятно, предпочли бы что-то вроде это , особенно этот фрагмент:

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.
Вероятная причина этого заключается в том, что вы путаете серверную и клиентскую стороны. Как указано на этом форуме , кажется, что Entity.worldobj - это WorldServer на стороне сервера.

...