Comments (7)
except now you'd need to have a tick thread which locks each region from ticking so that it itself can tick once per tick in a global state for the world, which would break the whole "you can have a region tanking performance without killing the entire server" 'feature'
I don't think that that would really be something that would be deemed acceptable to the project
from folia.
from folia.
thanks
from folia.
Unlikely that command functions will ever be fixed. This is because now commands need to schedule onto the owning target's region, whether it be a block, entity, player, or something else. They may not even need to be scheduled at all.
This results in undefined completion order of the commands, which while some command functions may be able to tolerate, some may not be able to. There is no solution to this issue that I can see.
from folia.
What if we do something like a command execution stack and only run the next vanilla command after the logic of the previous command is complete?
from folia.
Because vanilla commands expect to be run within a global context, not a limited one
delaying execution of stuff would break behavior as now you'd have commands running across various ticks; teleport entity to Y, set flag on entity, etc, etc, would be spread across ticks and cause many dozens of issues.
Command functions are also generally replacable using plugins which offers a much more performant solution and allows them to deal with those issues on their own, as they won't need to delay execution in an uncontrolled manner
from folia.
I think you could have a synchronous context running for datapacks that's running on a single thread - while you can't really implement multithreading here, most servers that would use Folia for big server networks won't even use datapacks, while people who just want to get the most bang out of their server would still have compatibility with VanillaTweaks and whatever else they need to run. It's a bit complicated to act on things that are on different threads, you'd need some kind of localized system that lets specifically datapacks/vanilla minecraft commands access them
The intent would be to provide compatibility with pre-existing vanilla things while giving the ability to expand beyond that for servers that need more power.
It's something that needs to be thought out well, I think if you want for average people to use this just like paper, you need that sort of compatibility there. While plugins could replicate these functions, not everyone's up to replicating all of these with plugins.
If I have enough time on my hands, I might look into implementing datapack functionality into Folia, and maybe making a PR if it works out.
from folia.
Related Issues (20)
- Conversation API not working HOT 2
- Anvil in y=0 turns to item when falling
- "TrackedValues" is null when sending ClientboundSetEntityDataPacket to client and causes client to crash HOT 5
- Server crash on player disconnect (something in PlayerQuitEvent) HOT 3
- Crash while server try generate structure 'village' on folia 1.20.6 HOT 1
- Players not spawning at world spawn if spawnRadius is 0 HOT 1
- Version 1.20.6 HOT 2
- Failed to save player data for MrWolfix01 HOT 3
- Lost connection: Internal Exception: io.netty.handler.codec.EncoderException: Failed to encode packet 'clientbound/minecr aft:set_entity_data' HOT 1
- server crash on start HOT 1
- Server crashes when sending chunks to player on a boat(IndexOutOfBoundsException) HOT 3
- PlayerRespawnEvent, PlayerPostRespawnEvent not trigger HOT 1
- patch.bat fails to patch the project HOT 5
- Exception on player join io.netty.handler.codec.EncoderException: Failed to encode packet 'clientbound/minecraft:update_recipes' HOT 3
- Failed to decode packet HOT 1
- Crash server HOT 1
- Tamed mobs don't teleport to their owner at great distance (across region?) HOT 1
- Internal Exception: io.netty.handler.codec.EncoderException: Failed to encode packet HOT 1
- 1.21 update? HOT 2
- Error on player login : java.lang.IllegalStateException: Player is already removed from player chunk loader HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from folia.