【1.7.10】自作modがマルチでクラッシュする

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.320168)

【1.7.10】自作modがマルチでクラッシュする

投稿記事by mocha » 2018年9月15日(土) 13:55

自作modで、カスタムレンダーを使った梯子ブロックを作ったのですが、開発環境では全く不具合は起きなかったのに、マルチで導入すると、そのブロックを設置した瞬間にクラッシュします。

マルチのクラッシュレポート:
---- Minecraft Crash Report ----
// My bad.

Time: 18/09/15 13:35
Description: Exception in server tick loop

java.lang.NoClassDefFoundError: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer
at com.MyMod.blocks.BlockLadderwood.func_149645_b(BlockLadderwood.java:75)
at net.minecraft.entity.Entity.func_70091_d(Entity.java:765)
at net.minecraft.network.NetHandlerPlayServer.func_147347_a(NetHandlerPlayServer.java:341)
at net.minecraft.network.play.client.C03PacketPlayer.func_148833_a(SourceFile:137)
at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.func_148833_a(SourceFile:20)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:334)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 12 more
Caused by: java.lang.NullPointerException
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
... 14 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_181, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 587504800 bytes (560 MB) / 1000865792 bytes (954 MB) up to 1000865792 bytes (954 MB)
JVM Flags: 2 total; -Xmx1024M -Xms1024M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 13, tcache: 0, allocated: 13, tallocated: 95
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 22 mods loaded, 22 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] (forge_1.7.10_server.jar)
UCHIJAAAA Forge{10.13.4.1558} [Minecraft Forge] (forge_1.7.10_server.jar)
UCHIJAAAA instantlava{1.0.1} [InstantLava] (minecraft.jar)
UCHIJAAAA net.minecraft.storagebox.mod_StorageBox{3.0.5} [StorageBox] (%5B1.7.10%5D%5Bforge1180%5Dmod_StorageBox_v3.0.5.zip)
UCHIJAAAA net.minecraft.scalar.cutall.mod_CutAllSMP{2.5.0} [CutAllSMP] (%5B1.7.10%5D%5Bforge1291%5Dmod_CutAllSMP_v2.5.0.zip)
UCHIJAAAA net.minecraft.scalar.digall.mod_DigAllSMP{2.3.0} [DigAllSMP] (%5B1.7.10%5D%5Bforge1291%5Dmod_DigAllSMP_v2.3.0.zip)
UCHIJAAAA net.minecraft.scalar.mineall.mod_MineAllSMP{2.6.1} [MineAllSMP] (%5B1.7.10%5D%5Bforge1291%5Dmod_MineAllSMP_v2.6.1.zip)
UCHIJAAAA mod_ecru_AutoSowSeed_Forge{2.0.2} [Auto sow seed] ([1.7.10]AutoSowSeed_Forge v2.0.2.jar)
UCHIJAAAA ExPContainerMod{1.2.0} [ExPContainerMod] ([1.7.2] ExPContainer 1.2.0-a.jar)
UCHIJAAAA spawnchecker{2.1.4.128} [SpawnChecker] (_SpawnChecker-v2.1.4.128-1.7.10.jar)
UCHIJAAAA spawnchecker.presetmode{2.1.4.128} [SpawnChecker preset mode] (_SpawnChecker-v2.1.4.128-1.7.10.jar)
UCHIJAAAA BambooMod{Minecraft@MC_VERSION@ var@VERSION@} [BambooMod] (Bamboo-2.6.8.5.jar)
UCHIJAAAA kegare.bedrocklayer{1.0.9} [BedrockLayer] (BedrockLayer_1.7.2-v1.0.9.jar)
UCHIJAAAA craftguide{1.6.8.2} [CraftGuide] (CraftGuide-1.6.8.2-forge.jar)
UCHIJAAAA IC2{2.2.828-experimental} [IndustrialCraft 2] (industrialcraft-2-2.2.828-experimental.jar)
UCHIJAAAA inventorytweaks{1.58-147-645ca10} [Inventory Tweaks] (Inventory-Tweaks-Mod-1.7.10.jar)
UCHIJAAAA JABBA{1.2.2} [JABBA] (Jabba-1.2.2_1.7.10.jar)
UCHIJAAAA MyMod{1.7.10-1.1.28} [MyMod] (MyMod-1.7.10-1.1.28.jar)
UCHIJAAAA OldMassFabricator{@VERSION@} [OldMassFabricator] (oldMassFabricator-1.1.3.jar)
UCHIJAAAA flammpfeil.slashblade{mc1.7.10-r87} [SlashBlade] (SlashBlade-mc1.7.10-r87.jar)
UCHIJAAAA VisibleRayGenerator{1710-492V2} [VisibleRayGenerator] (VisibleRayGenerator-1710-492V2.jar)
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Player Count: 1 / 20; [EntityPlayerMP['ogamocha'/350, l='world', x=-282.10, y=68.21, z=350.35]]
Is Modded: Definitely; Server brand changed to 'fml,forge'
Type: Dedicated Server (map_server.txt)


TileEntitySpecialRendererがないと出ているのですが、ソースでTileEntitySpecialRendererは使用していません。
なぜかわかる方はいますか?
ぜひ教えてください。

Minecraft1.7.10
Froge10.13.4.1558です。
マルチでも同じバージョンを使用しています。
mocha
ID:6b9a3681
 

  • (PostNo.320218)

Re: 【1.7.10】自作modがマルチでクラッシュする

投稿記事by mocha » 2018年9月16日(日) 17:04

追記です
シングルプレイなら普通にできます。
mocha
ID:6b9a3681
 

  • (PostNo.320219)

Re: 【1.7.10】自作modがマルチでクラッシュする

投稿記事by mocha » 2018年9月16日(日) 17:07

レンダーのソースコードです。
package com.MyMod.Client;

import org.lwjgl.opengl.GL11;

import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.IBlockAccess;

@SideOnly(Side.CLIENT)
public class RenderLadderBlock implements ISimpleBlockRenderingHandler
{
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer)
{

if (modelId == this.getRenderId())
{
this.renderBlockLadder(block, renderer, metadata, 0.0D, 0.0D, 0.4D, 0.2D, 1.0D, 0.6D);
this.renderBlockLadder(block, renderer, metadata, 0.2D, 0.08D, 0.45D, 0.8D, 0.24D, 0.55D);
this.renderBlockLadder(block, renderer, metadata, 0.2D, 0.40D, 0.45D, 0.8D, 0.56D, 0.55D);
this.renderBlockLadder(block, renderer, metadata, 0.2D, 0.72D, 0.45D, 0.8D, 0.88D, 0.55D);
this.renderBlockLadder(block, renderer, metadata, 0.8D, 0.0D, 0.4D, 1.0D, 1.0D, 0.6D);
}
}

@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer){
int meta=world.getBlockMetadata(x, y, z);
if (modelId == this.getRenderId()){
if(meta == 0||meta==2||meta==4||meta==6||meta==8||meta==10) {
renderer.setRenderBounds(0.0D, 0.0D, 0.4D, 0.2D, 1.0D, 0.6D);
renderer.renderStandardBlock(block, x, y, z);
renderer.setRenderBounds(0.2D, 0.08D, 0.45D, 0.8D, 0.24D, 0.55D);
renderer.renderStandardBlock(block, x, y, z);
renderer.setRenderBounds(0.2D, 0.40D, 0.45D, 0.8D, 0.56D, 0.55D);
renderer.renderStandardBlock(block, x, y, z);
renderer.setRenderBounds(0.2D, 0.72D, 0.45D, 0.8D, 0.88D, 0.55D);
renderer.renderStandardBlock(block, x, y, z);
renderer.setRenderBounds(0.8D, 0.0D, 0.4D, 1.0D, 1.0D, 0.6D);
renderer.renderStandardBlock(block, x, y, z);
}if(meta == 1||meta==3||meta==5||meta==7||meta==9||meta==11) {
renderer.setRenderBounds(0.4D, 0.0D, 0.0D, 0.6D, 1.0D, 0.2D);
renderer.renderStandardBlock(block, x, y, z);
renderer.setRenderBounds(0.45D, 0.08D, 0.2D, 0.55D, 0.24D, 0.8D);
renderer.renderStandardBlock(block, x, y, z);
renderer.setRenderBounds(0.45D, 0.40D, 0.2D, 0.55D, 0.56D, 0.8D);
renderer.renderStandardBlock(block, x, y, z);
renderer.setRenderBounds(0.45D, 0.72D, 0.2D, 0.55D, 0.88D, 0.8D);
renderer.renderStandardBlock(block, x, y, z);
renderer.setRenderBounds(0.4D, 0.0D, 0.8D, 0.6D, 1.0D, 1.0D);
renderer.renderStandardBlock(block, x, y, z);
}
}
return true;
}

public void renderladderworld(){

}

@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}

@Override
public int getRenderId() {

return MyModClientProxy.ladderblockRenderId;
}



protected void renderBlockLadder(Block block , RenderBlocks renderer , int metadata , double x1 , double y1 , double z1 ,double x2,double y2,double z2 )
{

renderer.setRenderBounds(x1, y1, z1, x2, y2, z2);
Tessellator tessellator = Tessellator.instance;
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);

tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
renderer.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}

}

どこかおかしいところはありませんか?
mocha
ID:6b9a3681
 

  • (PostNo.320237)

Re: 【1.7.10】自作modがマルチでクラッシュする

投稿記事by elise_blacklab » 2018年9月16日(日) 18:52

at com.MyMod.blocks.BlockLadderwood.func_149645_b(BlockLadderwood.java:75)

レンダラではなくブロック側で異常が出ているのでそちらのソースを提示してください.
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:0f87040f
掘り廃人
 
記事: 2555
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.320242)

Re: 【1.7.10】自作modがマルチでクラッシュする

投稿記事by mocha » 2018年9月16日(日) 20:07

すみません。getRenderType()のところでエラー出てたのでずっとレンダーが悪いのかと思っていました。
ブロックの方はこちらになります。

package com.MyMod.blocks;

import java.util.List;

import com.MyMod.Client.MyModClientProxy;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class BlockLadderwood extends Block{

public IIcon oak;
public IIcon spruce;
public IIcon birch;
public IIcon jungle;
public IIcon acacia;
public IIcon darkoak;

public BlockLadderwood() {
super(Material.wood);
this.setCreativeTab(CreativeTabs.tabDecorations);
this.setHardness(1.0f);
this.setResistance(15.0F);
this.setLightLevel(0.0F);
this.setBlockName("blockladder");

}

@Override
public void registerBlockIcons(IIconRegister register){
this.oak=register.registerIcon("planks_oak");
this.spruce=register.registerIcon("planks_spruce");
this.birch=register.registerIcon("planks_birch");
this.jungle=register.registerIcon("planks_jungle");
this.acacia=register.registerIcon("planks_acacia");
this.darkoak=register.registerIcon("planks_big_oak");
}
@Override
public IIcon getIcon(int side, int meta) {
if(meta==0||meta==1)
return this.oak;
if(meta==2||meta==3)
return this.spruce;
if(meta==4||meta==5)
return this.birch;
if(meta==6||meta==7)
return this.jungle;
if(meta==8||meta==9)
return this.acacia;
if(meta==10||meta==11)
return this.darkoak;
return this.oak;
}

//レンダーIDを返す
@SideOnly(Side.CLIENT)
@Override
public int getRenderType()
{
return MyModClientProxy.ladderblockRenderId;
}

//梯子のように登れるかどうかを返す
@Override
public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
{
return true;
}

@Override
public int damageDropped(int meta) {
if(meta==1) {
return 0;
}if(meta==3) {
return 2;
}if(meta==5) {
return 4;
}if(meta==7) {
return 6;
}if(meta==9) {
return 8;
}if(meta==11) {
return 10;
}
return meta;
}

@Override
public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB p_149743_5_, List p_149743_6_, Entity p_149743_7_){
int meta=world.getBlockMetadata(x, y, z);
if(meta == 0||meta==2||meta==4||meta==6||meta==8||meta==10) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.05F, 1.0F, 1.0F);
super.addCollisionBoxesToList(world, x, y, z, p_149743_5_, p_149743_6_, p_149743_7_);
this.setBlockBounds(0.95F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
super.addCollisionBoxesToList(world, x, y, z, p_149743_5_, p_149743_6_, p_149743_7_);
this.setBlockBounds(0.0F, 0.0F, 0.4F, 1.0F, 1.0F, 0.6F);
super.addCollisionBoxesToList(world, x, y, z, p_149743_5_, p_149743_6_, p_149743_7_);
}if(meta == 1||meta==3||meta==5||meta==7||meta==9||meta==11) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.05F);
super.addCollisionBoxesToList(world, x, y, z, p_149743_5_, p_149743_6_, p_149743_7_);
this.setBlockBounds(0.0F, 0.0F, 0.95F, 1.0F, 1.0F, 1.0F);
super.addCollisionBoxesToList(world, x, y, z, p_149743_5_, p_149743_6_, p_149743_7_);
this.setBlockBounds(0.4F, 0.0F, 0.0F, 0.6F, 1.0F, 1.0F);
super.addCollisionBoxesToList(world, x, y, z, p_149743_5_, p_149743_6_, p_149743_7_);
}
}


//ブロックが透けるか否かを返す。

@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_)
{
return true;
}

//通常のブロックでないかを返す。
@Override
public boolean renderAsNormalBlock()
{
return false;
}

//ブロックが透明か否かを返す。
@Override
public boolean isOpaqueCube()
{
return false;
}

@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs creativeTab, List list) {
list.add(new ItemStack(item, 1, 0));
list.add(new ItemStack(item, 1, 2));
list.add(new ItemStack(item, 1, 4));
list.add(new ItemStack(item, 1, 6));
list.add(new ItemStack(item, 1, 8));
list.add(new ItemStack(item, 1, 10));
}

@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(player.inventory.getCurrentItem()==null) {
return false;
}
int meta=world.getBlockMetadata(x,y,z);
int plymeta=player.getCurrentEquippedItem().getItemDamage();
ItemStack stack=player.inventory.getCurrentItem();

boolean set=false;
if((meta==0||meta==1) &&plymeta==0) {
set=true;
}if((meta==2||meta==3) &&plymeta==2) {
set=true;
}if((meta==4||meta==5) &&plymeta==4) {
set=true;
}if((meta==6||meta==7) &&plymeta==6) {
set=true;
}if((meta==8||meta==9) &&plymeta==8) {
set=true;
}if((meta==10||meta==11) &&plymeta==10) {
set=true;
}if(player.capabilities.isCreativeMode) {
set =true;
}
if(stack.getItem() instanceof ItemBlock) {
ItemBlock item = (ItemBlock) stack.getItem();

if(item.field_150939_a==this&&set) {
while(world.getBlock(x, y, z) == this) {
++y;
}

if(this.canPlaceBlockAt(world, x, y, z) && y < 256) {
world.setBlock(x, y, z, this, meta, 7);
this.onPostBlockPlaced(world, x, y, z, 0);

if(!player.capabilities.isCreativeMode) {
--player.getCurrentEquippedItem().stackSize;

if(player.getCurrentEquippedItem().stackSize <= 0) {
player.inventory.mainInventory[player.inventory.currentItem] = null;
}
}
}
}
}
return true;

}

@Override
public void onNeighborBlockChange(World world,int x,int y,int z,Block neighber) {
Block block=world.getBlock(x, y-1, z);
if(block==Blocks.air) {
this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0);
world.setBlockToAir(x, y, z);
}
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack itemstack){
int l = MathHelper.floor_double((double)(entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
int meta=itemstack.getItemDamage();

switch (meta) {
case 0:
if (l == 0||l==2){
world.setBlockMetadataWithNotify(x, y, z, 0, 2);
}if (l == 1||l ==3) {
world.setBlockMetadataWithNotify(x, y, z, 1, 2);
}break;
case 2:
if (l == 0||l==2){
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
}if (l == 1||l == 3) {
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
}break;
case 4:
if (l == 0||l==2) {
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
}if (l == 1||l == 3) {
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
}break;
case 6:
if (l == 0||l==2){
world.setBlockMetadataWithNotify(x, y, z, 6, 2);
}if (l == 1||l == 3){
world.setBlockMetadataWithNotify(x, y, z, 7, 2);
}break;
case 8:
if (l == 0||l==2){
world.setBlockMetadataWithNotify(x, y, z, 8, 2);
}if (l == 1||l == 3) {
world.setBlockMetadataWithNotify(x, y, z, 9, 2);
}break;
case 10:
if (l == 0||l==2){
world.setBlockMetadataWithNotify(x, y, z, 10, 2);
}if (l == 1||l == 3) {
world.setBlockMetadataWithNotify(x, y, z, 11, 2);
}break;
}
}
}

おねがいします。
mocha
ID:6b9a3681
 

  • (PostNo.320299)

Re: 【1.7.10】自作modがマルチでクラッシュする

投稿記事by mocha » 2018年9月17日(月) 17:22

func_149645_bはpublic int getRenderType()のところです
mocha
ID:6b9a3681
 

  • (PostNo.320342)

Re: 【1.7.10】自作modがマルチでクラッシュする

投稿記事by mocha » 2018年9月18日(火) 17:55

マルチでクラッシュする件ですが、設置した瞬間ではなく、設置してしばらくするといきなりクラッシュします。
どういうことでしょうか
mocha
ID:6b9a3681
 


Return to 質問:開発・制作関連

x