Jump to content

Recommended Posts

Posted (edited)

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?
Edited by MCrafterzz
Posted (edited)

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

Edited by MCrafterzz
Posted (edited)

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?

Edited by MCrafterzz
Posted
  On 4/18/2018 at 3:02 PM, MCrafterzz said:

Is there any easier way to detect the press of CTRL without using packets?

Expand  

Isn't CTRL the key used to sneak?
Check if the player is sneaking.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

You might be right. I haven't actually played in a while.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

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?

 

Posted (edited)

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());

Edited by MCrafterzz
Posted

Which is fired for EVERY key that's pressed EVERY time its pressed.

You should not use it.

Use the ClientTickEvent

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted (edited)

I did it like this last time to open my backpack item via a keybind. It shouldnt be that much different from 1.7.10 to 1.12.2

 

https://github.com/Dragonisser/CobaltMod/blob/master/src/main/java/cobaltmod/handler/event/CobaltKeyHandler.java#L53

 

https://github.com/Dragonisser/CobaltMod/blob/master/src/main/java/cobaltmod/network/packet/server/CobaltOpenGuiMessage.java

Edited by Dragonisser
Posted

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

Posted (edited)

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.

Edited by MCrafterzz
Posted (edited)

better show the KeybindMessage class of yours.

 

in your capability you can create a setter method and set the value on the server. do not forget to save it in Nbt aswell.

 

Make sure that you register your packet for the SERVER side 
    

  Quote

    INSTANCE.registerMessage(Packet.Handler.class, packet.class, ID of your packet, Side.SERVER);

Expand  

 

onMessage you take the Entityplayer and get the CAPABILITY for that player.

  Quote


player.getCapability().getyourmethodtogetthevalueyouwant();

 

Expand  

 

now you use your setter to set the value you want. the server will save that if you fill serializeNBT and deserializeNBT in your CAPABILITY

 

  Quote

player.getCapability().setyourmethodtosetthevalueyouwant();

Expand  

 

Edited by NextInima

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Im trying to make a server for me and my friends. I have no mods on it, (yet) but i keep getting this on the terminal right before it closes out. it insist even open long enogth m=for me to log on .this is my most resent crash report thanks in advance.   ---- Minecraft Crash Report ---- // I blame Dinnerbone. Time: 2025-05-01 18:17:25 Description: Exception in server tick loop java.lang.IllegalStateException: Failed to initialize server     at TRANSFORMER/minecraft@1.21.5/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:676) ~[server-1.21.5-20250325.162830-srg.jar%23141!/:?] {re:classloading,pl:accesstransformer:B}     at TRANSFORMER/minecraft@1.21.5/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:276) ~[server-1.21.5-20250325.162830-srg.jar%23141!/:?] {re:classloading,pl:accesstransformer:B}     at java.base/java.lang.Thread.run(Thread.java:1583) [?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.21.5     Minecraft Version ID: 1.21.5     Operating System: Linux (amd64) version 6.11.0-19-generic     Java Version: 21.0.6, Ubuntu     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Ubuntu     Memory: 99161192 bytes (94 MiB) / 233832448 bytes (223 MiB) up to 1004535808 bytes (958 MiB)     CPUs: 2     Processor Vendor: GenuineIntel     Processor Name: Intel(R) Pentium(R) CPU B950 @ 2.10GHz     Identifier: Intel64 Family 6 Model 42 Stepping 7     Microarchitecture: Sandy Bridge (Client)     Frequency (GHz): 2.10     Number of physical packages: 1     Number of physical CPUs: 2     Number of logical CPUs: 2     Graphics card #0 name: 2nd Generation Core Processor Family Integrated Graphics Controller     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MiB): 256.00     Graphics card #0 deviceId: 0x0106     Graphics card #0 versionInfo: unknown     Virtual memory max (MiB): 5743.06     Virtual memory used (MiB): 3361.15     Swap memory total (MiB): 3828.00     Swap memory used (MiB): 811.72     Space in storage for jna.tmpdir (MiB): <path not set>     Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): <path not set>     Space in storage for io.netty.native.workdir (MiB): <path not set>     Space in storage for java.io.tmpdir (MiB): available: 421206.25, total: 467297.75     Space in storage for workdir (MiB): available: 421206.25, total: 467297.75     JVM Flags: 0 total;     Server Running: true     Active Data Packs: vanilla, mod_data, mod/neoforge     Available Data Packs: minecart_improvements, redstone_experiments, trade_rebalance, vanilla, mod/neoforge, mod_data     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     World Seed: -7131934175611965967     Suppressed Exceptions: ~~NONE~~     Is Modded: Definitely; Server brand changed to 'neoforge'     Type: Dedicated Server (map_server.txt)     ModLauncher: 11.0.4+main.d2e20e43     ModLauncher launch target: neoforgeserver     ModLauncher services:         sponge-mixin-0.15.2+mixin.0.8.7.jar mixin PLUGINSERVICE         loader-7.0.10.jar slf4jfixer PLUGINSERVICE         loader-7.0.10.jar runtime_enum_extender PLUGINSERVICE         at-modlauncher-11.0.2.jar accesstransformer PLUGINSERVICE         loader-7.0.10.jar runtimedistcleaner PLUGINSERVICE         modlauncher-11.0.4.jar mixin TRANSFORMATIONSERVICE         modlauncher-11.0.4.jar fml TRANSFORMATIONSERVICE     FML Language Providers:         javafml@7.0         minecraft@7.0     Mod List:         server-1.21.5-20250325.162830-srg.jar             |Minecraft                     |minecraft                     |1.21.5              |Manifest: NOSIGNATURE         neoforge-21.5.63-beta-universal.jar               |NeoForge                      |neoforge                      |21.5.63-beta        |Manifest: NOSIGNATURE     Crash Report UUID: 99fdd6a6-3898-4cfe-ab2c-80b1ace92081     FML: 7.0.10     NeoForge: 21.5.63-beta
    • My minecraft version is 1.20.1, I haven't had too many issues other than a mod not working sometimes, in which case I usually just delete and sift through the preexisting mods to try to find the issue, but I hit a big wall of not knowing what my issue is now. I just want to make a modpack for me and my partner!!! Here's the latest log url, https://pastebin.com/9LjctgYN 
    • i was having same problem, thanks 
    • I have no idea - look like it just stops
    • https://mclo.gs/Fy9ZzcR UPDATED LOGS still stays stuck at 0% when trying to load a world   https://mclo.gs/Fy9ZzcR UPDATED LOGS still stays stuck at 0% when trying to load a world  
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.