【総合】トピック立てるまでもない質問【Mod制作】

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

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Shiotsu2 » 2018年7月22日(日) 15:51

1.7.10のMOD作成についてです

  RiceCuttingTools稲刈り道具を作っている途中で

  RiceCuttingTools = new Item().setCreativeTab(SaltCore.TabSalt1710).setUnlocalizedName("RiceCuttingTools").setTextureName("saltmod:rice_cutting_tools");
GameRegistry.registerItem(RiceCuttingTools, "RiceCuttingTools");

  耐久値を消費してクラフトするレシピを作っていて
  上のコードに何を加えたらいいでしょうか
  一応耐久値の設定をしています

package salt_1710.Items;

import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;


public class ItemRiceCuttingTools extends Item {

public ItemRiceCuttingTools() {
super();
//アイテムのスタック数・耐久値
this.setMaxStackSize(1);
this.setMaxDamage(255);
}
//getContainerItemStackを呼び出す
@Override
public boolean hasContainerItem(ItemStack stack) {
return true;
}

//クラフト後にアイテムにダメージを与えて返す
@Override
public ItemStack getContainerItem(ItemStack itemStack) {
if (itemStack.getMaxDamage() == itemStack.getItemDamage()) {
return (ItemStack) null;
}
else {
ItemStack newItemStack = itemStack.copy();
newItemStack.setItemDamage(itemStack.getItemDamage() + 1);
return newItemStack;
}
}

}
Shiotsu2
ID:df0758c8
 

  • (PostNo.318276)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by 新人もっだー » 2018年7月23日(月) 17:14

forge 1.7.10-10.13.4.1558
intelliJ_idea
の環境です。kotlinを使っているのでcompileを通し、apply plugin: 'kotlin'としていますが、それ以外は「gradlew eclipse」後の環境のままです。その状態でsrc/main/kotlinでModは反応するのですが、
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: The following texture errors were found.
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: ==================================================
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: DOMAIN lifecraft
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: --------------------------------------------------
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: domain lifecraft is missing 2 textures
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: domain lifecraft is missing a resource manager - it is probably a side-effect of automatic texture processing
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: -------------------------
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: The missing resources for domain lifecraft are:
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/justice_sword.png
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: textures/items/evil_sword.png
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: -------------------------
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: No other errors exist for domain lifecraft
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: ==================================================
[17:08:37] [Client thread/ERROR] [TEXTURE ERRORS]: +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

となってしまいます。langもまたしかり。

src
--main
--kotlin
----resources
----assets/lifecraft/textures/items
------justice_sword.png
------evil_sword.png
といった構成です。setTextureName("lifecraft:evil_sword")で設定しています。

build.gradle
コード: 全て選択

buildscript {
    ext.kotlin_version = '1.2.51'
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'forge'
apply plugin: 'kotlin'

version = "1.0"
group= "org.gake.lifecraft" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "lifecraft"

minecraft {
    version = "1.7.10-10.13.4.1558-1.7.10"
    runDir = "eclipse"
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

processResources {
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'

        // replace version and mcversion
        expand 'version': project.version, 'mcversion': project.minecraft.version
    }

    // copy everything else, thats not the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}
sourceSets {
    main {
        output.resourcesDir = output.classesDir
    }
}
instance().instance().instance() = null;
アバター
新人もっだー
ID:f4092567
石掘り
 
記事: 143
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.318742)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by MollyNoah » 2018年8月05日(日) 23:30

forge1.7のチュートリアルをみて、レシピの追加からやっていますが、
GameRegistry.addRecipe(new ItemStack(Items.diamond)
この1行でやっていること詳しく理解するにはどうしたら良いでしょうか。
バニラのソースを見たりしていますがよくわかりません。

レシピの追加をするソースということはわかりますが、
どのようにして追加されている仕組みなのか、少しでも深く知りたいです。
MollyNoah
ID:38ca03c0
水から上がったとこ
 
記事: 4
登録日時: 2018年8月05日(日) 02:00

  • (PostNo.318744)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by elise_blacklab » 2018年8月05日(日) 23:54

MollyNoah さんが書きました:forge1.7のチュートリアルをみて、レシピの追加からやっていますが、GameRegistry.addRecipe(new ItemStack(Items.diamond)この1行でやっていること詳しく理解するにはどうしたら良いでしょうか。

その一行で終わりじゃないですよ…?
まずJavaの文法というのは大丈夫なんです?
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:0f87040f
掘り廃人
 
記事: 2555
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.318746)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by MollyNoah » 2018年8月06日(月) 01:06

文法も少しかじった程度の初心者です。
方法よりも処理の内容や仕組みを理解したいのですが何か良い方法はありますでしょうか。
具体的にどのクラスやメソッドが関わって、レシピの追加になるのかが知りたいです。。
MollyNoah
ID:38ca03c0
水から上がったとこ
 
記事: 4
登録日時: 2018年8月05日(日) 02:00

  • (PostNo.318747)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by elise_blacklab » 2018年8月06日(月) 01:51

MollyNoah さんが書きました:文法も少しかじった程度の初心者です。
方法よりも処理の内容や仕組みを理解したいのですが何か良い方法はありますでしょうか。
具体的にどのクラスやメソッドが関わって、レシピの追加になるのかが知りたいです。。

ええと,どこから指摘したらいいやら…
まず何が言いたいかというと,「その部分はレシピを追加する部分の一部でしかないぞ」ということです.
あなたが今直面している問題は「どういう仕組みでこの処理がレシピを追加するのか」ではなくて,「どこからどこまでがレシピの追加なのか」が分からない,ということです.
通常そういう質問をされると我々は「GameRegistry.addRecipe()メソッドがレシピの追加だぜ」という回答をするのですが,
MollyNoah さんが書きました:GameRegistry.addRecipe(new ItemStack(Items.diamond)この1行でやっていること詳しく理解するにはどうしたら良いでしょうか。
というように,メソッド呼び出しががどこからどこまでかも分からず提示して質問してくるあたり,現状であなたが満足に理解できる回答を得られる可能性は低いです.

そもそもJavaのプログラミングにかなり不慣れなようですので,まずJava自体に慣れてください.
Javaの基本的な文法はあらかたマスターしていただいて,オブジェクト指向に関する知識も少々学ばれてから,moddingに挑戦することをお勧めします.
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:0f87040f
掘り廃人
 
記事: 2555
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.318748)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by MollyNoah » 2018年8月06日(月) 02:11

アドバイスありがとうございました。
MollyNoah
ID:38ca03c0
水から上がったとこ
 
記事: 4
登録日時: 2018年8月05日(日) 02:00

  • (PostNo.318850)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by apoqliphort_towers » 2018年8月09日(木) 10:50

現在私はforge 1.7.10の環境で工業系のmodを作ろうとしています。
その際に電力の概念を追加しようと思っています。
その際、ソースコードを公開しておりmoddingの際に参考になるmodは何がありますか?
現在mod作成中……。
完成度1%
アバター
apoqliphort_towers
ID:12f3c1d7
木を殴ってる
 
記事: 12
登録日時: 2018年8月08日(水) 10:54
お住まい: ダ☆埼玉

  • (PostNo.319796)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by ゲスト » 2018年9月02日(日) 10:58

1.12.2にて自作MODを作成しています。
自作のツルハシを追加しているのですが、そのツルハシで岩盤を破壊・回収したいのです。
できれば約10秒ほどで採掘できるようにしたいのですが、方法が分かりません。
どうか誰か、ご教示ください!
なお、そのツルハシのツールマテリアルの値は2, 200, 14.0F, 1.0F, 10です。
ゲスト
ID:4081cba6
 

  • (PostNo.319808)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by CrafterKina » 2018年9月02日(日) 15:45

ゲスト さんが書きました:1.12.2にて自作MODを作成しています。
自作のツルハシを追加しているのですが、そのツルハシで岩盤を破壊・回収したいのです。
できれば約10秒ほどで採掘できるようにしたいのですが、方法が分かりません。
どうか誰か、ご教示ください!
なお、そのツルハシのツールマテリアルの値は2, 200, 14.0F, 1.0F, 10です。


その質問に答えるとModが一つできますね。
あまり質問が大雑把すぎるとアイデアトピックに書くのと変わりないと自分は思っているので、もう少し質問を絞っていただけると回答しやすいです。
どこから手を付けていいか分からない、というのであれば他のModのコードを参考にするのがいいかと思います。(例えばDigBedrockなど)
アバター
CrafterKina
ID:5e467c2b
石炭掘り
 
記事: 193
登録日時: 2013年4月06日(土) 14:42
お住まい: 廃坑

  • (PostNo.319809)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by ゲスト » 2018年9月02日(日) 15:59

では、他のMODを参考にして頑張ろうと思います。
CrafterKinaさん、ご回答ありがとうございました!
ゲスト
ID:4081cba6
 

  • (PostNo.320150)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Totemosuki » 2018年9月15日(土) 04:16

質問
HandmadeGunsのアドオンを作ろうとしています
モデルが完成し、ゲームに実装をしましたがモデルの一部(銃のストック部分)がまるでカメラが内側にある状態かのように透けてしまいます
また、一人称視点、HandmadeGuns同梱のガンラックに飾るときは透け、三人称視点やLittleMaidが持つときは透けません
どういうときこのような状態になり、どうすればストックが透けずに描写されるかをお尋ねしたいです

環境
Minecraft1.7.10
Forge10.13.4.1558
HandmadeGuns 1.7x-srg-1
添付ファイル
amarec (20180915-035731).jpg
三人称
amarec (20180915-035517).jpg
ガンラック
amarec (20180915-034412).jpg
一人称
HandmadeGunsのコンテンツパックを作っています
アバター
Totemosuki
ID:21652133
水から上がったとこ
 
記事: 3
登録日時: 2018年9月15日(土) 03:42

  • (PostNo.320154)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Totemosuki » 2018年9月15日(土) 07:01

自己解決しました
モデルに問題があって法線を設定してなかったのがダメだったみたいですね…
皆さんありがとうございました
HandmadeGunsのコンテンツパックを作っています
アバター
Totemosuki
ID:21652133
水から上がったとこ
 
記事: 3
登録日時: 2018年9月15日(土) 03:42

  • (PostNo.320217)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by ryotaa » 2018年9月16日(日) 16:49

プラグインを作っています。
特定のプレイヤーの入っているチームを取得する方法を教えてください。
viewtopic.php?f=39&t=8371&start=600
ここのPostNo.172544でPlayerから直接チームを取得できないと書いてあったのですが、
そのスレを見てもじゃあどうやってチームを取得するかわからなかったので質問させていただきました。
ryotaa
ID:228caa51
 

  • (PostNo.320224)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by [ロ凸ロ] » 2018年9月16日(日) 17:41

GuiNewChatを継承してチャット欄に画像を表示させたいのですが、GuiNewChatクラスの代わりにGuiNewChatExtクラスを呼ばせるには処理で詰まっています。
いろいろ調べた結果、Reflectionを使ってGuiIngameにあるpersistantChatGUIの値を書き換える方法を試してみたのですが、エラーを吐いてうまくいきません。
MinecraftForge1.12です
コード: 全て選択
@SubscribeEvent
public void onConnectedToServer(FMLNetworkEvent.ClientConnectedToServerEvent event) throws Exception {
    Field persistantChatGUIField = ReflectionHelper.findField(GuiIngame.class, "field_73840_e");
    persistantChatGUIField.setAccessible(true);

    Field modifiersField = Field.class.getDeclaredField("modifiers");
    modifiersField.setAccessible(true);
    modifiersField.setInt(persistantChatGUIField, persistantChatGUIField.getModifiers() & ~Modifier.FINAL);
    persistantChatGUIField.set(null, new GuiNewChatExt(Minecraft.getMinecraft()));
}

エラー:
コード: 全て選択
[17:30:45] [Netty Local Client IO #0/ERROR] [FML]: There was a critical exception handling a packet on channel FML
java.lang.NullPointerException: null
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:57) ~[?:1.8.0_51]
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:75) ~[?:1.8.0_51]
at java.lang.reflect.Field.set(Field.java:764) ~[?:1.8.0_51]
at com.yu212.samplemod.Samplemod.onConnectedToServer(Samplemod.java:244) ~[Samplemod.class:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_5_Samplemod_onConnectedToServer_ClientConnectedToServerEvent.invoke(.dynamic) ~[?:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179) ~[EventBus.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeClientSideConnection(NetworkDispatcher.java:247) ~[NetworkDispatcher.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeHandshake(NetworkDispatcher.java:558) ~[NetworkDispatcher.class:?]
at net.minecraftforge.fml.common.network.internal.HandshakeCompletionHandler.channelRead0(HandshakeCompletionHandler.java:36) ~[HandshakeCompletionHandler.class:?]
at net.minecraftforge.fml.common.network.internal.HandshakeCompletionHandler.channelRead0(HandshakeCompletionHandler.java:30) ~[HandshakeCompletionHandler.class:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[SimpleChannelInboundHandler.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[MessageToMessageDecoder.class:4.1.9.Final]
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) ~[DefaultChannelPipeline$HeadContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) ~[DefaultChannelPipeline.class:4.1.9.Final]
at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:274) ~[EmbeddedChannel.class:4.1.9.Final]
at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.func_148833_a(FMLProxyPacket.java:99) [FMLProxyPacket.class:?]
at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:147) [gw.class:?]
at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:49) [gw.class:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleClientSideCustomPacket(NetworkDispatcher.java:396) [NetworkDispatcher.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:271) [NetworkDispatcher.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:74) [NetworkDispatcher.class:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [DefaultChannelPipeline$HeadContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [AbstractChannelHandlerContext.class:4.1.9.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [DefaultChannelPipeline.class:4.1.9.Final]
at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:443) [LocalChannel.class:4.1.9.Final]
at io.netty.channel.local.LocalChannel.access$500(LocalChannel.java:49) [LocalChannel.class:4.1.9.Final]
at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:397) [LocalChannel$5.class:4.1.9.Final]
at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54) [DefaultEventLoop.class:4.1.9.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [SingleThreadEventExecutor$5.class:4.1.9.Final]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
[ロ凸ロ]
ID:7dfbb24d
水から上がったとこ
 
記事: 1
登録日時: 2017年12月14日(木) 20:00

  • (PostNo.320629)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by ゲスト » 2018年9月26日(水) 21:20

1.12.2にてforgeを前提とする自作MODを作成しています。
近接武器を追加したいのですが、武器のリーチを変更する方法はありますか?
理想としては、“剣から範囲攻撃及びそのエンチャントをオミット”と“リーチが剣より1m長い”という武器種なのですが……。
ゲスト
ID:4081cba6
 

  • (PostNo.320637)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by kerochan » 2018年9月27日(木) 18:52

こんにちは。minecraft ver1.12.2でforge(バージョンは14.23.4.2705)でmodを製作している者です。

modでContainerクラスを継承したクラスを作成している際に、疑問点が生じたため質問させていただきます。
それは、sendWindowPropertyメソッドの第2引数の値がどのようにして更新する変数を指定しているのかという疑問です。

バニラのContainerFurnaceクラスやContainerBrewingStandクラスのdetectAndSendChangesメソッドでは、第2引数と第3引数の・・・.getFieldメソッドの引数が一致しているため、おそらくの値をキーとして第3引数の値を用いてクライアント側のコンテナの変数を更新しているのであろうと考えていたのですが、cubex2様の製作したMoreFurnaceというmodではgetFieldメソッドがなく第2引数と第3引数の関連性がないため、このような疑問が生じました。
このメソッドについてwebで検索してみたのですが情報が非常に少なく、満足できる結果は得られませんでした。

sendWindowPropertyメソッドの第2引数の値がどのようにして更新する変数を指定しているのか、ご教示願います。
アバター
kerochan
ID:f42d235e
水から上がったとこ
 
記事: 2
登録日時: 2018年9月24日(月) 00:29

  • (PostNo.320640)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by kerochan » 2018年9月27日(木) 20:08

申し訳ありません。自己解決しました。
sendWindowPropertyメソッドと同じクラスにあるupdateProgressBarメソッドの第1,2引数が、sendWindowPropertyメソッドの第2,3引数に対応していました。
アバター
kerochan
ID:f42d235e
水から上がったとこ
 
記事: 2
登録日時: 2018年9月24日(月) 00:29

  • (PostNo.320898)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by Ender Colossus » 2018年10月07日(日) 15:51

MODを作っているのですが 
コード: 全て選択
package mod.ultimate;

import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.World;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.DamageSource;
import net.minecraft.potion.PotionEffect;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Item;
import net.minecraft.init.Items;
import net.minecraft.init.Blocks;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.monster.EntityGolem;
import net.minecraft.entity.monster.EntityGhast;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.ai.EntityAIWander;
import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.ai.EntityAIAttackOnCollide;
import net.minecraft.entity.ai.EntityAIEntityLargeFireballAttack;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.IRangedAttackMob;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.Entity;
import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.client.model.ModelBiped;

import java.util.Random;

import cpw.mods.fml.relauncher.SideOnly;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.client.registry.RenderingRegistry;

@SuppressWarnings("unchecked")
public class jumpingArcher {

   public static int mobid = 0;
   public Object instance;

   public void load() {
   }

   public void generateNether(World world, Random random, int chunkX, int chunkZ) {
   }

   public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
   }

   public int addFuel(ItemStack fuel) {
      return 0;
   }

   @SideOnly(Side.CLIENT)
   public void registerRenderers() {
      RenderingRegistry.registerEntityRenderingHandler(jumpingArcher.EntityjumpingArcher.class, new RenderBiped(new ModelBiped(), 0) {
         protected ResourceLocation getEntityTexture(Entity par1Entity) {
            return new ResourceLocation("NewSkinGhast.png");
         }
      });
      RenderingRegistry.registerEntityRenderingHandler(EntityLargeFireballCustom.class,
            new RenderSnowball(new ItemStack(mcreator_bigSword.block).getItem()));

   }

   public void serverLoad(FMLServerStartingEvent event) {
   }

   public void preInit(FMLPreInitializationEvent event) {
      int entityID = EntityRegistry.findGlobalUniqueEntityId();
      mobid = entityID;
      EntityRegistry.registerGlobalEntityID(jumpingArcher.EntityjumpingArcher.class, "jumpingArcher", entityID);
      EntityRegistry.registerModEntity(jumpingArcher.EntityjumpingArcher.class, "jumpingArcher", entityID, instance, 64, 1, true);
      EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, (255 << 16) + (255 << 8) + 255, (255 << 16)
            + (255 << 8) + 255));
      EntityRegistry.addSpawn(jumpingArcher.EntityjumpingArcher.class, 20, 3, 30, EnumCreatureType.monster, new BiomeGenBase[]{
            BiomeGenBase.ocean, BiomeGenBase.plains, BiomeGenBase.desert, BiomeGenBase.extremeHills, BiomeGenBase.forest, BiomeGenBase.taiga,
            BiomeGenBase.swampland, BiomeGenBase.river, BiomeGenBase.frozenOcean, BiomeGenBase.frozenRiver, BiomeGenBase.icePlains,
            BiomeGenBase.iceMountains, BiomeGenBase.mushroomIsland, BiomeGenBase.mushroomIslandShore, BiomeGenBase.beach,
            BiomeGenBase.desertHills, BiomeGenBase.forestHills, BiomeGenBase.taigaHills, BiomeGenBase.extremeHillsEdge, BiomeGenBase.jungle,
            BiomeGenBase.jungleHills, BiomeGenBase.jungleEdge, BiomeGenBase.deepOcean, BiomeGenBase.stoneBeach, BiomeGenBase.coldBeach,
            BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.roofedForest, BiomeGenBase.coldTaiga,
            BiomeGenBase.coldTaigaHills, BiomeGenBase.megaTaiga, BiomeGenBase.megaTaigaHills, BiomeGenBase.extremeHillsPlus,
            BiomeGenBase.savanna, BiomeGenBase.savannaPlateau, BiomeGenBase.mesa, BiomeGenBase.mesaPlateau_F, BiomeGenBase.mesaPlateau});

      int entityID2 = EntityRegistry.findGlobalUniqueEntityId();
      EntityRegistry.registerModEntity(EntityLargeFireballCustom.class, "entityBulletjumpingArcher", entityID2, instance, 64, 1, true);

   }

   /*
    * public Entity spawnEntity(int var1, World var2, double var3, double var5,
    * double var7) { if(var1==mobid) return new
    * mcreator_jumpingArcher.EntityjumpingArcher(var2); else return null; }
    */

   public static class EntityLargeFireballCustom extends EntityLargeFireball {
      public EntityLargeFireballCustom(World a) {
         super(a);
            }
         
      public EntityLargeFireball(World worldIn, EntityLivingBase shooter, float c) {
               super(worldIn, shooter, c);
          }
     }

   public static class EntityjumpingArcher extends EntityMob implements IRangedAttackMob {
      World world = null;

      public EntityjumpingArcher(World var1) {
         super(var1);
         world = var1;
         experienceValue = 5;
         this.isImmuneToFire = false;
         addRandomArmor();
         this.tasks.addTask(0, new EntityAISwimming(this));
         this.tasks.addTask(6, new EntityAIWander(this, 1.0D));
         this.tasks.addTask(8, new EntityAILookIdle(this));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.tasks.addTask(10, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, EntityGolem.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, skull.Entityskull.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, witherSkullboss.EntitywitherSkullboss.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, titan.Entitytitan.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, squidArcher.EntitysquidArcher.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, EntityGhast.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.tasks.addTask(10, new EntityAIAttackOnCollide(this, EntityGolem.class, 1.0D, false));
         this.tasks.addTask(1, new EntityAIAttackOnCollide(this, skull.Entityskull.class, 1.0D, false));
         this.tasks.addTask(1, new EntityAIAttackOnCollide(this, witherSkullboss.EntitywitherSkullboss.class, 1.0D, false));
         this.tasks.addTask(1, new EntityAIAttackOnCollide(this, titan.Entitytitan.class, 1.0D, false));
         this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, jumpingArcher.EntityjumpingArcher.class, 2, true));
         this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false));
         this.tasks.addTask(1, new EntityAIAttackOnCollide(this, jumpingArcher.EntityjumpingArcher.class, 1.0D, false));
         this.tasks.addTask(1, new EntityAILargeFireballAttack(this, 1.0D, 20, 60, 15.0F));

      }

      protected void applyEntityAttributes() {
         super.applyEntityAttributes();
         this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
         this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(1500D);
         if (this.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null)
            this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3D);
      }

      protected void addRandomArmor() {

         this.setCurrentItemOrArmor(0, new ItemStack(Items.bow));
      }

      @Override
      public void attackEntityWithRangedAttack(EntityLivingBase target, float flval) {
         EntityLargeFireballCustom entitylargefireball = new EntityLargeFireballCustom(this.worldObj, this, 2.0f);
         this.worldObj.spawnEntityInWorld(entitylargefireball);
      }

      public boolean isAIEnabled() {
         return true;
      }

      @Override
      protected Item getDropItem() {
         return new ItemStack(Items.arrow).getItem();
      }

      /**
       * Returns the sound this mob makes while it's alive.
       */
      protected String getLivingSound() {
         return "";
      }

      /**
       * Returns the sound this mob makes when it is hurt.
       */
      protected String getHurtSound() {
         return "";
      }

      /**
       * Returns the sound this mob makes on death.
       */
      protected String getDeathSound() {
         return "";
      }

      public void onStruckByLightning(EntityLightningBolt entityLightningBolt) {
         super.onStruckByLightning(entityLightningBolt);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;
         Entity entity = this;

         if (true) {
            world.setBlock(i, j, k, Blocks.iron_bars, 0, 2);
         }

      }

      protected void fall(float l) {
         super.fall(l);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;
         super.fall(l);
         Entity entity = this;

         if (true) {
            EntityArrow entityarrow = new EntityArrow(world, (EntityLivingBase) entity, 2 * 2.0F);
            entityarrow.setDamage(2 * 2.0F);
            entityarrow.setKnockbackStrength(1);
            world.playSoundAtEntity(entity, "random.bow", 1.0F, 1.0F / (0.5F * 0.4F + 1.2F) + 2 * 0.5F);
            if (!world.isRemote)
               world.spawnEntityInWorld(entityarrow);
         }

         if (true) {
            if (entity instanceof EntityLivingBase)
               ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(10, 100000, 250));
         }

      }

      public void onDeath(DamageSource dsource) {
         super.onDeath(dsource);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;
         Entity entity = this;

         if (true) {
            EntityItem var14 = new EntityItem(world, (double) (i), (double) (j), (double) (k), new ItemStack(Items.arrow, 1, 0));
            var14.delayBeforeCanPickup = 10;
            world.spawnEntityInWorld(var14);
         }

      }

      public void onKillEntity(EntityLiving entityLiving) {
         super.onKillEntity(entityLiving);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;
         Entity entity = this;

         if (true) {
            EntityArrow entityarrow = new EntityArrow(world, (EntityLivingBase) entity, 1 * 2.0F);
            entityarrow.setDamage(1 * 2.0F);
            entityarrow.setKnockbackStrength(1);
            world.playSoundAtEntity(entity, "random.bow", 1.0F, 1.0F / (0.5F * 0.4F + 1.2F) + 1 * 0.5F);
            if (!world.isRemote)
               world.spawnEntityInWorld(entityarrow);
         }

      }

      public boolean interact(EntityPlayer entity) {
         super.interact(entity);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;

         return true;
      }

      public String getEntityName() {
         return "jumpingArcher";
      }

   }

}

上のコードの
コード: 全て選択
      public EntityLargeFireball(World worldIn, EntityLivingBase shooter, float c) {
               super(worldIn, shooter, c);
          }
     }

ここの部分が「戻り値の型が必要」と出ます。
調べて,やってもエラーが出ました。
どうすればいいですか。
最後に編集したユーザー Ender Colossus [ 2018年10月08日(月) 06:45 ], 累計 1 回
COMMAND でいろいろ作ってます。
まだ全然出てないけど


Mini Game も作っています?
アバター
Ender Colossus
ID:b0e1d611
木を殴ってる
 
記事: 11
登録日時: 2018年9月17日(月) 15:49

  • (PostNo.320901)

Re: 【総合】トピック立てるまでもない質問【Mod制作】

投稿記事by ペコリン » 2018年10月07日(日) 16:44

Ender Colossus さんが書きました:MODを作っているのですが 
コード: 全て選択
package mod.ultimate;

import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.World;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.DamageSource;
import net.minecraft.potion.PotionEffect;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Item;
import net.minecraft.init.Items;
import net.minecraft.init.Blocks;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.monster.EntityGolem;
import net.minecraft.entity.monster.EntityGhast;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.ai.EntityAIWander;
import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.ai.EntityAIAttackOnCollide;
import net.minecraft.entity.ai.EntityAIEntityLargeFireballAttack;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.IRangedAttackMob;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.Entity;
import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.client.model.ModelBiped;

import java.util.Random;

import cpw.mods.fml.relauncher.SideOnly;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.client.registry.RenderingRegistry;

@SuppressWarnings("unchecked")
public class mcreator_jumpingArcher {

   public static int mobid = 0;
   public Object instance;

   public void load() {
   }

   public void generateNether(World world, Random random, int chunkX, int chunkZ) {
   }

   public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
   }

   public int addFuel(ItemStack fuel) {
      return 0;
   }

   @SideOnly(Side.CLIENT)
   public void registerRenderers() {
      RenderingRegistry.registerEntityRenderingHandler(mcreator_jumpingArcher.EntityjumpingArcher.class, new RenderBiped(new ModelBiped(), 0) {
         protected ResourceLocation getEntityTexture(Entity par1Entity) {
            return new ResourceLocation("NewSkinGhast.png");
         }
      });
      RenderingRegistry.registerEntityRenderingHandler(EntityLargeFireballCustom.class,
            new RenderSnowball(new ItemStack(mcreator_bigSword.block).getItem()));

   }

   public void serverLoad(FMLServerStartingEvent event) {
   }

   public void preInit(FMLPreInitializationEvent event) {
      int entityID = EntityRegistry.findGlobalUniqueEntityId();
      mobid = entityID;
      EntityRegistry.registerGlobalEntityID(mcreator_jumpingArcher.EntityjumpingArcher.class, "jumpingArcher", entityID);
      EntityRegistry.registerModEntity(mcreator_jumpingArcher.EntityjumpingArcher.class, "jumpingArcher", entityID, instance, 64, 1, true);
      EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, (255 << 16) + (255 << 8) + 255, (255 << 16)
            + (255 << 8) + 255));
      EntityRegistry.addSpawn(mcreator_jumpingArcher.EntityjumpingArcher.class, 20, 3, 30, EnumCreatureType.monster, new BiomeGenBase[]{
            BiomeGenBase.ocean, BiomeGenBase.plains, BiomeGenBase.desert, BiomeGenBase.extremeHills, BiomeGenBase.forest, BiomeGenBase.taiga,
            BiomeGenBase.swampland, BiomeGenBase.river, BiomeGenBase.frozenOcean, BiomeGenBase.frozenRiver, BiomeGenBase.icePlains,
            BiomeGenBase.iceMountains, BiomeGenBase.mushroomIsland, BiomeGenBase.mushroomIslandShore, BiomeGenBase.beach,
            BiomeGenBase.desertHills, BiomeGenBase.forestHills, BiomeGenBase.taigaHills, BiomeGenBase.extremeHillsEdge, BiomeGenBase.jungle,
            BiomeGenBase.jungleHills, BiomeGenBase.jungleEdge, BiomeGenBase.deepOcean, BiomeGenBase.stoneBeach, BiomeGenBase.coldBeach,
            BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.roofedForest, BiomeGenBase.coldTaiga,
            BiomeGenBase.coldTaigaHills, BiomeGenBase.megaTaiga, BiomeGenBase.megaTaigaHills, BiomeGenBase.extremeHillsPlus,
            BiomeGenBase.savanna, BiomeGenBase.savannaPlateau, BiomeGenBase.mesa, BiomeGenBase.mesaPlateau_F, BiomeGenBase.mesaPlateau});

      int entityID2 = EntityRegistry.findGlobalUniqueEntityId();
      EntityRegistry.registerModEntity(EntityLargeFireballCustom.class, "entityBulletjumpingArcher", entityID2, instance, 64, 1, true);

   }

   /*
    * public Entity spawnEntity(int var1, World var2, double var3, double var5,
    * double var7) { if(var1==mobid) return new
    * mcreator_jumpingArcher.EntityjumpingArcher(var2); else return null; }
    */

   public static class EntityLargeFireballCustom extends EntityLargeFireball {
      public EntityLargeFireballCustom(World a) {
         super(a);
            }
         
      public EntityLargeFireball(World worldIn, EntityLivingBase shooter, float c) {
               super(worldIn, shooter, c);
          }
     }

   public static class EntityjumpingArcher extends EntityMob implements IRangedAttackMob {
      World world = null;

      public EntityjumpingArcher(World var1) {
         super(var1);
         world = var1;
         experienceValue = 5;
         this.isImmuneToFire = false;
         addRandomArmor();
         this.tasks.addTask(0, new EntityAISwimming(this));
         this.tasks.addTask(6, new EntityAIWander(this, 1.0D));
         this.tasks.addTask(8, new EntityAILookIdle(this));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.tasks.addTask(10, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, EntityGolem.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, mcreator_skull.Entityskull.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, mcreator_witherSkullboss.EntitywitherSkullboss.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, mcreator_titan.Entitytitan.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, mcreator_squidArcher.EntitysquidArcher.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.targetTasks.addTask(10, new EntityAINearestAttackableTarget(this, EntityGhast.class, 2, true));
         this.targetTasks.addTask(11, new EntityAIHurtByTarget(this, false));
         this.tasks.addTask(10, new EntityAIAttackOnCollide(this, EntityGolem.class, 1.0D, false));
         this.tasks.addTask(1, new EntityAIAttackOnCollide(this, mcreator_skull.Entityskull.class, 1.0D, false));
         this.tasks.addTask(1, new EntityAIAttackOnCollide(this, mcreator_witherSkullboss.EntitywitherSkullboss.class, 1.0D, false));
         this.tasks.addTask(1, new EntityAIAttackOnCollide(this, mcreator_titan.Entitytitan.class, 1.0D, false));
         this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, mcreator_jumpingArcher.EntityjumpingArcher.class, 2, true));
         this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false));
         this.tasks.addTask(1, new EntityAIAttackOnCollide(this, mcreator_jumpingArcher.EntityjumpingArcher.class, 1.0D, false));
         this.tasks.addTask(1, new EntityAILargeFireballAttack(this, 1.0D, 20, 60, 15.0F));

      }

      protected void applyEntityAttributes() {
         super.applyEntityAttributes();
         this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
         this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(1500D);
         if (this.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null)
            this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3D);
      }

      protected void addRandomArmor() {

         this.setCurrentItemOrArmor(0, new ItemStack(Items.bow));
      }

      @Override
      public void attackEntityWithRangedAttack(EntityLivingBase target, float flval) {
         EntityLargeFireballCustom entitylargefireball = new EntityLargeFireballCustom(this.worldObj, this, 2.0f);
         this.worldObj.spawnEntityInWorld(entitylargefireball);
      }

      public boolean isAIEnabled() {
         return true;
      }

      @Override
      protected Item getDropItem() {
         return new ItemStack(Items.arrow).getItem();
      }

      /**
       * Returns the sound this mob makes while it's alive.
       */
      protected String getLivingSound() {
         return "";
      }

      /**
       * Returns the sound this mob makes when it is hurt.
       */
      protected String getHurtSound() {
         return "";
      }

      /**
       * Returns the sound this mob makes on death.
       */
      protected String getDeathSound() {
         return "";
      }

      public void onStruckByLightning(EntityLightningBolt entityLightningBolt) {
         super.onStruckByLightning(entityLightningBolt);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;
         Entity entity = this;

         if (true) {
            world.setBlock(i, j, k, Blocks.iron_bars, 0, 2);
         }

      }

      protected void fall(float l) {
         super.fall(l);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;
         super.fall(l);
         Entity entity = this;

         if (true) {
            EntityArrow entityarrow = new EntityArrow(world, (EntityLivingBase) entity, 2 * 2.0F);
            entityarrow.setDamage(2 * 2.0F);
            entityarrow.setKnockbackStrength(1);
            world.playSoundAtEntity(entity, "random.bow", 1.0F, 1.0F / (0.5F * 0.4F + 1.2F) + 2 * 0.5F);
            if (!world.isRemote)
               world.spawnEntityInWorld(entityarrow);
         }

         if (true) {
            if (entity instanceof EntityLivingBase)
               ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(10, 100000, 250));
         }

      }

      public void onDeath(DamageSource dsource) {
         super.onDeath(dsource);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;
         Entity entity = this;

         if (true) {
            EntityItem var14 = new EntityItem(world, (double) (i), (double) (j), (double) (k), new ItemStack(Items.arrow, 1, 0));
            var14.delayBeforeCanPickup = 10;
            world.spawnEntityInWorld(var14);
         }

      }

      public void onKillEntity(EntityLiving entityLiving) {
         super.onKillEntity(entityLiving);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;
         Entity entity = this;

         if (true) {
            EntityArrow entityarrow = new EntityArrow(world, (EntityLivingBase) entity, 1 * 2.0F);
            entityarrow.setDamage(1 * 2.0F);
            entityarrow.setKnockbackStrength(1);
            world.playSoundAtEntity(entity, "random.bow", 1.0F, 1.0F / (0.5F * 0.4F + 1.2F) + 1 * 0.5F);
            if (!world.isRemote)
               world.spawnEntityInWorld(entityarrow);
         }

      }

      public boolean interact(EntityPlayer entity) {
         super.interact(entity);
         int i = (int) this.posX;
         int j = (int) this.posY;
         int k = (int) this.posZ;

         return true;
      }

      public String getEntityName() {
         return "jumpingArcher";
      }

   }

}

上のコードの
コード: 全て選択
      public EntityLargeFireball(World worldIn, EntityLivingBase shooter, float c) {
               super(worldIn, shooter, c);
          }
     }

ここの部分が「戻り値の型が必要」と出ます。
調べて,やってもエラーが出ました。
どうすればいいですか。


何をどう知らべて、何をやり、どのようなエラーが出たのでしょうか。質問にはこういった内容が必要です。
が、実は原因は戻り値とは全く別のところにあります。

このメソッドに戻り値の型の指定は不要です、おそらくコンストラクタとして記述したものだと推測します。
コンストラクタのメソッド名はクラスと同じです。スーパークラス名ではありません。
スーパークラスであるEntityLargeFireballのコンストラクタをそのままコピーしてきたのではないかと思われます。
メソッドをクラスと同じ名前に修正してみてください。
村人をメイドさんにするMODを好き勝手に作ってますん
アバター
ペコリン
ID:b86e9fbd
石炭掘り
 
記事: 167
登録日時: 2016年5月01日(日) 20:56

1つ前へ次へ

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

x