Skip to content

Plugins and inter-world access/modifications #2

Description

@Poweruser

I have not found an elegant solution for the following case yet:

A plugin's event handler is called by a world ticker thread A (which ticks world [1]) and accesses methods of another world [2], which modify the state of that world, while a world ticker thread B concurrently ticks world [2].

This may of course cause case conflicts and/or errors, as two or multiple thread are working on same set of data in such a case.
Just like it's a rule in the original CraftBukkit not to access the Bukkit API from outside the main thread, it is going to be a rule here, to avoid inter-world access within the event handlers. If the outcome of the event (cancelling it or not) is not depended on this inter-world access, then schedule a task which does that. In MinetickMod tasks are still only called by the main thread between world ticks (nothing changed there).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions