TickThreading - concurrent entity/tile entity ticks and other optimisations

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

Slind

Well-Known Member
Mar 8, 2013
492
73
53
so lets get a conclusion:

- project at this moment frozen = last activity 1 year ago
- delay after delay
- working together with bukkit not forge

= if they implement this in vanilla minecraft, no one will use it, they are not able to implement that much possibilties that forge gives mod creators, within the next two years, if u see mojangs developement...
 

cjm721

New Member
Jul 29, 2019
734
0
1
so lets get a conclusion:

- project at this moment frozen = last activity 1 year ago
- delay after delay
- working together with bukkit not forge

= if they implement this in vanilla minecraft, no one will use it, they are not able to implement that much possibilties that forge gives mod creators, within the next two years, if u see mojangs developement...


The bukkit model for plugins would be much better for Minecraft then what the current modding scene is. It was not untill recently that forge can run in a deobfuscated environment. Nor do you see mods from 1.0 that still work in 1.6 (which many bukkit plugins do) because of how for every update forge has massive updates which means the mods must follow those updates which is what causes so much of our waiting. With bukkit if there was any needed changes to the plugins (only NMS plugins really caused issues on updates) within a week of a minecraft update everything I needed for my server was updated. So by doing to a more bukkit model of a never changing API and deobfusated always then that will open up modding to many more people, and help with compatibility even more (protection mods that protect on the base level no more need for workarounds and hacky patching of classes).

Then the question becomes does making modding easier for more people which would bring more people to modding either help or hinder the community? Now with the current direction it does appear as if things like FTB and tekkit are going to becoming impossible or redundant as Mojang is changing what they will allow mods to do (no more direct editing Minecraft files) and being the ability to select mods right off the launcher. Now if they allow for some type of API / Editing at that level I could still see third part sources being able distribute mod packs.

The future is never known so for all we know they would just adopt md_5 (person who makes Spigiot, MCPC, and special source) and all of our worries and problems be over, but we do have to remember its not one person making a decision at mojang its a group.
 

Cozza

New Member
Jul 29, 2019
320
0
0
Does anyone know whats going on with Nallar's build server? It appears to be down.

I was going to try and pickup a copy of TickProfiler to help diagnose low TPS issues :(
 

luacs1998

New Member
Jul 29, 2019
97
0
0
The bukkit model for plugins would be much better for Minecraft then what the current modding scene is. It was not untill recently that forge can run in a deobfuscated environment. Nor do you see mods from 1.0 that still work in 1.6 (which many bukkit plugins do) because of how for every update forge has massive updates which means the mods must follow those updates which is what causes so much of our waiting. With bukkit if there was any needed changes to the plugins (only NMS plugins really caused issues on updates) within a week of a minecraft update everything I needed for my server was updated. So by doing to a more bukkit model of a never changing API and deobfusated always then that will open up modding to many more people, and help with compatibility even more (protection mods that protect on the base level no more need for workarounds and hacky patching of classes).

Then the question becomes does making modding easier for more people which would bring more people to modding either help or hinder the community? Now with the current direction it does appear as if things like FTB and tekkit are going to becoming impossible or redundant as Mojang is changing what they will allow mods to do (no more direct editing Minecraft files) and being the ability to select mods right off the launcher. Now if they allow for some type of API / Editing at that level I could still see third part sources being able distribute mod packs.

The future is never known so for all we know they would just adopt md_5 (person who makes Spigiot, MCPC, and special source) and all of our worries and problems be over, but we do have to remember its not one person making a decision at mojang its a group.

NMS plugins in the new bukkit = obfuscated forge mod code.
And it's not Forge's fault, Mojang has been pushing a lot of breaking changes.
 

iMontouch

New Member
Jul 29, 2019
147
0
0
Since I installed this all my turtles are not permitted to forceload chunks. (Chunkloader turtles, obviously)

Is this configurable? Is it a problem with TT or am I wrong here?

Thanks!

- iMontouch
 

seriousvern

New Member
Jul 29, 2019
71
0
0
Nallar, I know you are done with this but can we have one feature request. I would like the ability to disable the TT for certian mods. That way we can continue to use your awesome mod as other new mods come out, or for things that dont work correctly.
This would be a big help to all and im sure you could do it.
 

cpy

New Member
Jul 29, 2019
42
0
0
Remember, it wasn't only TT that he supported. He supported TT itself along with 30-40 other mods, so whoever picks it up has to take on that responsibility. So it may not even happen, but who knows.

Thank you captain obvious!

Also i don't think he will add features since he's not working at TT so, yeah but sure ask why not right? :)

Why mojang did not made their code multithreaded? Apparently it can be done and nallar proved it, so what the heck? Also mod authors, what the heck? Why nobody use this multithreaded potential when we have 4 cores or more on lot of computers now, and server have really lot of cores.
 

Slind

Well-Known Member
Mar 8, 2013
492
73
53
Nallar, I know you are done with this but can we have one feature request. I would like the ability to disable the TT for certian mods. That way we can continue to use your awesome mod as other new mods come out, or for things that dont work correctly.
This would be a big help to all and im sure you could do it.

maybe u write him an email, that he gets the question.
https://github.com/nallar
 

tp3r

New Member
Jul 29, 2019
3
0
0
tnx for u wonderful TT, but i have a serius problem with TT and tekkitcostumizer+ griefprevention I he spams the console continuously
Code:
2013-08-29 00:06:43 [SEVERE] Could not pass event BlockFromToEvent to GriefPrevention v7.6.2
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java)
    at net.minecraft.block.BlockFlowing.func_71847_b(BlockFlowing.java:171)
    at net.minecraft.world.WorldServer.func_72955_a(WorldServer.java:352)
    at net.minecraft.world.WorldServer.b_net_minecraft_world_WorldServer_tick_p0(WorldServer.java:411)
    at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java)
    at net.minecraft.server.MinecraftServer.doWorldTick(MinecraftServer.java:531)
    at nallar.patched.server.PatchMinecraftServer$TickRunnable.run(PatchMinecraftServer.java:684)
    at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:43)
    at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)
Caused by: java.lang.NullPointerException
    at org.bukkit.craftbukkit.v1_5_R3.CraftWorld.getUID(CraftWorld.java:539)
    at org.bukkit.craftbukkit.v1_5_R3.CraftWorld.equals(CraftWorld.java:1208)
    at java.util.ArrayList.indexOf(ArrayList.java:269)
    at java.util.ArrayList.contains(ArrayList.java:252)
    at me.ryanhamshire.GriefPrevention.BlockEventHandler.onBlockFromTo(BlockEventHandler.java:623)
    at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
    ... 12 more
2013-08-29 00:06:43 [SEVERE] Could not pass event BlockFromToEvent to GriefPrevention v7.6.2
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java)
    at net.minecraft.block.BlockFlowing.func_71847_b(BlockFlowing.java:222)
    at net.minecraft.world.WorldServer.func_72955_a(WorldServer.java:352)
    at net.minecraft.world.WorldServer.b_net_minecraft_world_WorldServer_tick_p0(WorldServer.java:411)
    at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java)
    at net.minecraft.server.MinecraftServer.doWorldTick(MinecraftServer.java:531)
    at nallar.patched.server.PatchMinecraftServer$TickRunnable.run(PatchMinecraftServer.java:684)
    at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:43)
    at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)
Caused by: java.lang.NullPointerException
    at org.bukkit.craftbukkit.v1_5_R3.CraftWorld.getUID(CraftWorld.java:539)
    at org.bukkit.craftbukkit.v1_5_R3.CraftWorld.equals(CraftWorld.java:1208)
    at java.util.ArrayList.indexOf(ArrayList.java:269)
    at java.util.ArrayList.contains(ArrayList.java:252)
    at me.ryanhamshire.GriefPrevention.BlockEventHandler.onBlockFromTo(BlockEventHandler.java:623)
    at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
    ... 12 more
2013-08-29 00:06:47 [SEVERE] Could not pass event BlockFromToEvent to GriefPrevention v7

I tried to disable cleanWorlds=true but after some time has another problem
 

cjm721

New Member
Jul 29, 2019
734
0
1
tnx for u wonderful TT, but i have a serius problem with TT and tekkitcostumizer+ griefprevention I he spams the console continuously
Code:
2013-08-29 00:06:43 [SEVERE] Could not pass event BlockFromToEvent to GriefPrevention v7.6.2
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java)
    at net.minecraft.block.BlockFlowing.func_71847_b(BlockFlowing.java:171)
    at net.minecraft.world.WorldServer.func_72955_a(WorldServer.java:352)
    at net.minecraft.world.WorldServer.b_net_minecraft_world_WorldServer_tick_p0(WorldServer.java:411)
    at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java)
    at net.minecraft.server.MinecraftServer.doWorldTick(MinecraftServer.java:531)
    at nallar.patched.server.PatchMinecraftServer$TickRunnable.run(PatchMinecraftServer.java:684)
    at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:43)
    at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)
Caused by: java.lang.NullPointerException
    at org.bukkit.craftbukkit.v1_5_R3.CraftWorld.getUID(CraftWorld.java:539)
    at org.bukkit.craftbukkit.v1_5_R3.CraftWorld.equals(CraftWorld.java:1208)
    at java.util.ArrayList.indexOf(ArrayList.java:269)
    at java.util.ArrayList.contains(ArrayList.java:252)
    at me.ryanhamshire.GriefPrevention.BlockEventHandler.onBlockFromTo(BlockEventHandler.java:623)
    at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
    ... 12 more
2013-08-29 00:06:43 [SEVERE] Could not pass event BlockFromToEvent to GriefPrevention v7.6.2
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java)
    at net.minecraft.block.BlockFlowing.func_71847_b(BlockFlowing.java:222)
    at net.minecraft.world.WorldServer.func_72955_a(WorldServer.java:352)
    at net.minecraft.world.WorldServer.b_net_minecraft_world_WorldServer_tick_p0(WorldServer.java:411)
    at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java)
    at net.minecraft.server.MinecraftServer.doWorldTick(MinecraftServer.java:531)
    at nallar.patched.server.PatchMinecraftServer$TickRunnable.run(PatchMinecraftServer.java:684)
    at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:43)
    at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)
Caused by: java.lang.NullPointerException
    at org.bukkit.craftbukkit.v1_5_R3.CraftWorld.getUID(CraftWorld.java:539)
    at org.bukkit.craftbukkit.v1_5_R3.CraftWorld.equals(CraftWorld.java:1208)
    at java.util.ArrayList.indexOf(ArrayList.java:269)
    at java.util.ArrayList.contains(ArrayList.java:252)
    at me.ryanhamshire.GriefPrevention.BlockEventHandler.onBlockFromTo(BlockEventHandler.java:623)
    at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
    ... 12 more
2013-08-29 00:06:47 [SEVERE] Could not pass event BlockFromToEvent to GriefPrevention v7

I tried to disable cleanWorlds=true but after some time has another problem

Did you turn off world unloading?
 

tp3r

New Member
Jul 29, 2019
3
0
0
B:allowWorldUnloading=false
B:cleanWorlds=true
or
B:allowWorldUnloading=false
B:cleanWorlds=false


?????
 

saki2fifty

New Member
Jul 29, 2019
73
0
0
Thank you captain obvious!

Also i don't think he will add features since he's not working at TT so, yeah but sure ask why not right? :)

Why mojang did not made their code multithreaded? Apparently it can be done and nallar proved it, so what the heck? Also mod authors, what the heck? Why nobody use this multithreaded potential when we have 4 cores or more on lot of computers now, and server have really lot of cores.

Captain Obvious here to save the day!

My comment was in direct relation to your "1.4.7 TT made server run like nothing i ever seen before. Hope someone will pickup 1.6.2, anyone?" comment.

Well, I'm thinking it wasn't all that "obvious" to you seeing how you were "hoping" that someone could just "pickup" this project with your "anyone?" comment that only 1 other person has ever attempted successfully. But what might actually and truly be obvious, is that the fact that you and I might not fully understand what it would take to "pickup" TT. Maybe if you snap your fingers and click your heals you might be in luck.