
MCrafterzz
Members-
Posts
285 -
Joined
-
Last visited
Everything posted by MCrafterzz
-
Opening the project in eclipse after gradlew eclipse works but I get this error: Project 'More Layers' is missing required library: 'C:\Users\marcu\.gradle\daemon\4.9\unresolved dependency - net.minecraftforge forge 1.13.2-25.0.13_mapped_snapshot_20180921-1.13' Looking at it, it points to C:\Users\marcus\.gradle\daemon\4.9 which is a empty folder. What should I do? Running gradlew eclipse again doesn't change anything
-
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
I think I finally got it working I changed the fromBytes to: keyboardDown = buf.readBoolean() -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
I updated my previous message -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
I've updated my Eventhandler: https://pastebin.com/0mYMp5Gz And my KeybindMessageHandler: https://pastebin.com/SNGBFhqs But it still doesn't work EDIT: KeybindMessage: https://pastebin.com/pD2CdBMN EDIT 2: Printing out Main.logger.warn(keybindDown) in the onMessage methoud always prints out false even tho the value sent is true. -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
Currently I'm detecting a key press on the client side and then storing that value as a player capability. But on the capability page on the docs it sais that the data has to be sent over to the server side with packets so that it somehow can be accessed on the SERVER side in the itemblock methoud. This is where I'm stuck. If you need any more code I can post it. Here is the eventhandler class: https://pastebin.com/MAhwwzgM -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
What I want is to move the client capability value to the server side of the itemblock methoud. How can this be achived? I can't do the action in message handler as it should be done when placing my block. -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
I have fixed that. Now I only need to send the data over to the server which isn't currently working. KeybindMessage: https://pastebin.com/neQQZggT KeybindMessage: https://pastebin.com/aTCipDuP (Here I'm lost) What should I add to get it working. Currently it only works on the client side. -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
The problem with that is that it doesn't provide the player or any other information that can be used to get that. I need the players as I otherwise can't add the capability to it -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
I think I got it working but where should I call the capability to update it? Is there a key press event?: KeybindInterface keybindInterface = event.getEntityPlayer().getCapability(KeybindProvider.capability, event.getFace()); keybindInterface.setKeybindDown(Minecraft.getMinecraft().gameSettings.keyBindSprint.isKeyDown()); -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
Bump -
So when the mod has been build and is run it crashes. Crash log: https://pastebin.com/vCXW8MR2 This is the only mod installed (I do not use oftifine which seems to be a common reason to this crash) Here is my ColourManager class: @EventBusSubscriber(modid = "ml") public class ColourManager { @SubscribeEvent public static void registerBlockColourHandlers(final ColorHandlerEvent.Block event) { final BlockColors blockColors = event.getBlockColors(); final IBlockColor grassColourHandler = (state, blockAccess, pos, tintIndex) -> { if (blockAccess != null && pos != null) { return BiomeColorHelper.getGrassColorAtPos(blockAccess, pos); } return ColorizerGrass.getGrassColor(0.5D, 1.0D); }; blockColors.registerBlockColorHandler(grassColourHandler, BlockInit.blocks.get(2)); } @SubscribeEvent public static void registerItemColourHandlers(final ColorHandlerEvent.Item event) { final BlockColors blockColors = event.getBlockColors(); final ItemColors itemColors = event.getItemColors(); final IItemColor itemBlockColourHandler = (stack, tintIndex) -> { @SuppressWarnings("deprecation") final IBlockState state = ((ItemBlock) stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata()); return blockColors.colorMultiplier(state, null, null, tintIndex); }; itemColors.registerItemColorHandler(itemBlockColourHandler, BlockInit.blocks.get(2)); } } I really don't understand why it crashes when it doesn't when run in eclipse.
-
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
Changing stuff eventually got it to work so now I just have to get the packages setup. Here is what I have so far: public class KeybindMessage implements IMessage { private boolean keybindDown; public KeybindMessage(boolean keybindDown) { this.keybindDown = keybindDown; } @Override public void fromBytes(ByteBuf buf) { buf.readBoolean(); } @Override public void toBytes(ByteBuf buf) { buf.writeBoolean(keybindDown); } } public class KeybindMessageHandler implements IMessageHandler<KeybindMessage, IMessage> { @Override public IMessage onMessage(KeybindMessage message, MessageContext ctx) { return null; } } What should be in the onMessage methoud? Main class (some stuff has been removed) @Mod(modid = "ml", name = "More Layers", version = "1.1.0", acceptedMinecraftVersions = "1.12,1.12.1,1.12.2") @EventBusSubscriber public class Main { public static final SimpleNetworkWrapper networkInstance = NetworkRegistry.INSTANCE.newSimpleChannel("ml"); @EventHandler public static void preInit(FMLPreInitializationEvent event) { networkInstance.registerMessage(KeybindMessageHandler.class, KeybindMessage.class, 0, Side.SERVER); } } I know that I should call Main.networkInstance.sendToServer but where should I call this and how should I get the result? -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
It still activates twice even tho I use worldIn.isRemote = false -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
Ctrl is for sprinting. But does someone know why this problem is happening? -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
Yes it's activated once for the client and once for the server. In the begining I checked for isRemote so that it only happened for the server but the problem still excisted. -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
Thread? You mean client/server? (This is my second mod so I'm not an expert) -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
I guess I'll have to look into that. The block setting methoud is the same as the vanilla itemblock tho so what do you mean with only place it on the server? Also I still don't understand the reasoning for it triggering twice as the canplayeredit methoud should prevent it. Is there any easier way to detect the press of CTRL without using packets? -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
How should I get the keybinds then? -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
It works like snow layers so you can build apon the block. Also I added the ability to place a four layers at the same time when clicking + CTRL. It's just so wierd as it is based on ItemBlockSnow but randomly workes differently (triggers two times instead of one). Here's the full code: https://pastebin.com/fys1Mb4G -
[1.12.2][SOLVED!] Capabilities and networking
MCrafterzz replied to MCrafterzz's topic in Modder Support
I do admit the isRemote thing was very dumb. I do return success tho. This is the end of the code (It's not the whole code): if (axisalignedbb != Block.NULL_AABB && worldIn.checkNoEntityCollision(axisalignedbb.offset(blockpos)) && worldIn.setBlockState(blockpos, iblockstate1, 10)) { SoundType soundtype = this.block.getSoundType(iblockstate1, worldIn, blockpos, player); worldIn.playSound(player, blockpos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); if (player instanceof EntityPlayerMP) { CriteriaTriggers.PLACED_BLOCK.trigger((EntityPlayerMP) player, blockpos, itemstack); } itemstack.shrink(amount); return EnumActionResult.SUCCESS; } EDIT: printing out "PLACED" with my debugger prints this: [16:27:31] [main/WARN] [ml]: PLACED [16:27:31] [Server thread/WARN] [ml]: PLACED Why aren't those two messages the same? -
See the last comments as the original part of the problem has been fixed.
-
Open the model in some sort of model viewer like blockbench to see if it's way off. The translation or scale could be wrong which makes it display behind the player or so small that it isn't visible. Also have you posted it to github now?
-
Post the log. I need to see if there is a error.
-
[1.12] Make custom grass block use the colour map
MCrafterzz replied to MCrafterzz's topic in Modder Support
Thanks everyone for you're help. It's now all working. One last quick question, is there any forge hook/event for grass spreading or is that still hardcoded like it is in the default BlockGrass class? -
[1.12] Make custom grass block use the colour map
MCrafterzz replied to MCrafterzz's topic in Modder Support
How? The register methoud only accepts blocks.