Giter Club home page Giter Club logo

Comments (7)

electronicboy avatar electronicboy commented on August 20, 2024 3

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.

electronicboy avatar electronicboy commented on August 20, 2024

from folia.

xmk2333 avatar xmk2333 commented on August 20, 2024

thanks

from folia.

Spottedleaf avatar Spottedleaf commented on August 20, 2024

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.

koteelok avatar koteelok commented on August 20, 2024

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.

electronicboy avatar electronicboy commented on August 20, 2024

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.

TheRedXD avatar TheRedXD commented on August 20, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.