Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.11.2] What consequences could have the use of FMLClientHandler in this specific situation?


ctbe
 Share

Recommended Posts

In an overridden method that doesn't tell me the facing on which a block was hit after breaking (onBlockDestroyed), I am using FMLClientHandler.instance().getClient() and if it is not null I try to get what face of the block was hit with FMLClientHandler.instance().getClient().objectMouseOver.sideHit.

 

Everything works fine and I have not had any problems. I don't know if this is the best way, it is the only way I found. I call this inside the logical server and I am playing in single player. 

 

If the mod is used in a multiplayer server in which the server as well the client have the mod installed, would that cause trouble?

 

If the answer is yes, would there be a preferred way to get the side of the block that was hit?

Link to comment
Share on other sites

This is a bad idea.

  1. On the logical server, you are reaching across logical sides. This will not work reliably. Sometimes it will give you wrong answers, sometimes it will crash, the outcome is basically unpredictable. You also ignore the fact that single player is not always single player. If the player opened the world up to LAN and someone joined, that someone would still get the main player's objectMouseOver here, because the server is running on their machine and therefor it can only access their client.
  2. On a dedicated server, this will just outright crash the game with a ClassNotFoundException, because the server has no idea what FMLClientHandler is.

As for how to do this: What are you trying to achieve, functionality wise (not how you intend to code that functionality).

  • Like 1
Link to comment
Share on other sites

I understand. Thanks for explaining. I could have messed up really bad. I must change my code.

 

I am trying to get which face of the block was hit when a block broke because depending on the face that it was hit, I will perform operations on neighbor blocks. If it was hit on the West or East side I will ignore the East and West offset blocks and work on the North and South offsets. If it was hit on the North and South offsets I will ignore the North and South offsets and work on the East and West offsets. But the block has to first break before I can perform operations on the neighbor blocks.

 

I have an item that extends ItemPickaxe and I override the onBlockDestroyed method which has signature

public Boolean onBlockDestroyed(ItemStack stack, World worldIn, IBlockState state, BlockPos pos, EntitiLivingBase entityLiving)

 

I thought I could get the face it was hit from the IBlockState, but I can't find any method that would return it. Or maybe I'm not searching well.

To get that information I later thought I could override the onBlockStartBreak method which gets called right before onBlockDestroyed gets called, but that one has less information passed as arguments. onBlockStartBreak has only an ItemStack, BlockPos, and EntityPlayer on its signature.

Link to comment
Share on other sites

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
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.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • thank you very much, the problem was in the path to the model.  
    • The version you are using is no longer supported on this forum. Please update to a modern version of Minecraft to receive support. Currently supported versions are 1.18.1/1.18.2 (Latest) and 1.16.5 (LTS).
    • The version of WorldEdit that you have is for 1.18.1 and not compatible with 1.18.2. Use the 1.18.2 version.
    • Having probems with a server i have at home it crashes when loading up   ---- Minecraft Crash Report ---- // Daisy, daisy... Time: 25/05/2022, 14:03 Description: Exception in server tick loop java.lang.NoSuchMethodError: 'net.minecraft.core.RegistryAccess net.minecraft.server.MinecraftServer.m_129911_()'     at com.sk89q.worldedit.forge.ForgeWorldEdit.setupRegistries(ForgeWorldEdit.java:197) ~[worldedit-mod-7.2.8.jar%2355!/:?] {re:classloading}     at com.sk89q.worldedit.forge.ForgeWorldEdit.serverStarted(ForgeWorldEdit.java:256) ~[worldedit-mod-7.2.8.jar%2355!/:?] {re:classloading}     at net.minecraftforge.eventbus.ASMEventHandler_9_ForgeWorldEdit_serverStarted_ServerStartedEvent.invoke(.dynamic) ~[?:?] {}     at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-5.0.3.jar%232!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-5.0.3.jar%232!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-5.0.3.jar%232!/:?] {}     at net.minecraftforge.server.ServerLifecycleHooks.handleServerStarted(ServerLifecycleHooks.java:99) ~[forge-1.18.2-40.1.25-universal.jar%2361!/:?] {re:classloading}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:662) ~[server-1.18.2-20220404.173914-srg.jar%2357!/:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.m_177918_(MinecraftServer.java:261) ~[server-1.18.2-20220404.173914-srg.jar%2357!/:?] {re:classloading,pl:accesstransformer:B}     at java.lang.Thread.run(Thread.java:833) [?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.18.2     Minecraft Version ID: 1.18.2     Operating System: Windows 11 (amd64) version 10.0     Java Version: 17.0.2, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation     Memory: 1172062448 bytes (1117 MiB) / 2105540608 bytes (2008 MiB) up to 2105540608 bytes (2008 MiB)     CPUs: 4     Processor Vendor: GenuineIntel     Processor Name: Intel(R) Core(TM) i3-8100T CPU @ 3.10GHz     Identifier: Intel64 Family 6 Model 158 Stepping 11     Microarchitecture: Coffee Lake     Frequency (GHz): 3.10     Number of physical packages: 1     Number of physical CPUs: 4     Number of logical CPUs: 4     Graphics card #0 name: Intel(R) UHD Graphics 630     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MB): 1024.00     Graphics card #0 deviceId: 0x3e91     Graphics card #0 versionInfo: DriverVersion=26.20.100.7757     Memory slot #0 capacity (MB): 8192.00     Memory slot #0 clockSpeed (GHz): 2.67     Memory slot #0 type: DDR4     Virtual memory max (MB): 9310.78     Virtual memory used (MB): 5713.56     Swap memory total (MB): 1280.00     Swap memory used (MB): 10.88     JVM Flags: 0 total;     Server Running: true     Player Count: 0 / 20; []     Data Packs: vanilla, mod:charginggadgets (incompatible), mod:supermartijn642configlib (incompatible), mod:worldedit (incompatible), mod:buildinggadgets (incompatible), mod:buildhelper (incompatible), mod:mcjtylib (incompatible), mod:supermartijn642corelib (incompatible), mod:chunkloaders (incompatible), mod:mininggadgets (incompatible), mod:forge (incompatible), mod:rftoolsbase (incompatible), mod:rftoolsbuilder (incompatible), mod:refinedstorage, mod:journeymap (incompatible), mod:cyclic, mod:jamd (incompatible), mod:jei (incompatible), mod:patchouli (incompatible), mod:laserio     World Generation: Experimental     Is Modded: Definitely; Server brand changed to 'forge'     Type: Dedicated Server (map_server.txt)     ModLauncher: 9.1.3+9.1.3+main.9b69c82a     ModLauncher launch target: forgeserver     ModLauncher naming: srg     ModLauncher services:          mixin PLUGINSERVICE          eventbus PLUGINSERVICE          slf4jfixer PLUGINSERVICE          object_holder_definalize PLUGINSERVICE          runtime_enum_extender PLUGINSERVICE          capability_token_subclass PLUGINSERVICE          accesstransformer PLUGINSERVICE          runtimedistcleaner PLUGINSERVICE          mixin TRANSFORMATIONSERVICE          fml TRANSFORMATIONSERVICE     FML Language Providers:         minecraft@1.0         javafml@null     Mod List:         server-1.18.2-20220404.173914-srg.jar             |Minecraft                     |minecraft                     |1.18.2              |DONE      |Manifest: NOSIGNATURE         charginggadgets-1.5.0.jar                         |Charging Gadgets              |charginggadgets               |1.5.0               |DONE      |Manifest: NOSIGNATURE         supermartijn642configlib-1.0.9-mc1.18.jar         |SuperMartijn642's Config Lib  |supermartijn642configlib      |1.0.9               |DONE      |Manifest: NOSIGNATURE         worldedit-mod-7.2.8.jar                           |WorldEdit                     |worldedit                     |7.2.8+6008-1246d61  |DONE      |Manifest: NOSIGNATURE         buildinggadgets-3.13.0-build.5+mc1.18.2.jar       |Building Gadgets              |buildinggadgets               |3.13.0-build.5+mc1.1|DONE      |Manifest: NOSIGNATURE         torojimaBuildHelper-3.5.0.0.jar                   |Torojima's Buildhelper        |buildhelper                   |3.5.0.0             |DONE      |Manifest: NOSIGNATURE         mcjtylib-1.18-6.0.13.jar                          |McJtyLib                      |mcjtylib                      |1.18-6.0.13         |DONE      |Manifest: NOSIGNATURE         jei-1.18.1-9.2.1.69.jar                           |Just Enough Items             |jei                           |9.2.1.69            |DONE      |Manifest: NOSIGNATURE         supermartijn642corelib-1.0.16-mc1.18.jar          |SuperMartijn642's Core Lib    |supermartijn642corelib        |1.0.16              |DONE      |Manifest: NOSIGNATURE         chunkloaders-1.1.8-mc1.18.jar                     |Chunk Loaders                 |chunkloaders                  |1.1.8               |DONE      |Manifest: NOSIGNATURE         mininggadgets-1.11.0.jar                          |Mining Gadgets                |mininggadgets                 |1.11.0              |DONE      |Manifest: NOSIGNATURE         forge-1.18.2-40.1.25-universal.jar                |Forge                         |forge                         |40.1.25             |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         rftoolsbase-1.18-3.0.7.jar                        |RFToolsBase                   |rftoolsbase                   |1.18-3.0.7          |DONE      |Manifest: NOSIGNATURE         rftoolsbuilder-1.18-4.0.10.jar                    |RFToolsBuilder                |rftoolsbuilder                |1.18-4.0.10         |DONE      |Manifest: NOSIGNATURE         Patchouli-1.18.2-67.jar                           |Patchouli                     |patchouli                     |1.18.2-67           |DONE      |Manifest: NOSIGNATURE         refinedstorage-1.10.2.jar                         |Refined Storage               |refinedstorage                |1.10.2              |DONE      |Manifest: NOSIGNATURE         laserio-1.0.1.jar                                 |LaserIO                       |laserio                       |1.0.1               |DONE      |Manifest: NOSIGNATURE         journeymap-1.18-5.8.0alpha4.jar                   |Journeymap                    |journeymap                    |5.8.0alpha4         |DONE      |Manifest: NOSIGNATURE         Cyclic-1.18.2-1.7.0.jar                           |Cyclic                        |cyclic                        |1.18.2-1.7.0        |DONE      |Manifest: 1f:47:ac:b1:61:82:96:b8:47:19:16:d2:61:81:11:60:3a:06:4b:61:31:56:7d:44:31:1e:0c:6f:22:5b:4c:ed         JAMD-1.7.0-build.24+mc1.18.2.jar                  |Just Another Mining Dimension |jamd                          |1.7.0-build.24+mc1.1|DONE      |Manifest: NOSIGNATURE     Crash Report UUID: a4b30830-b80e-4601-9aec-8e6451729eed     FML: 40.1     Forge: net.minecraftforge:40.1.25
    • This means the version of Configured is not for 1.18, you need a version of the Mod for 1.18.2
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.