MeowMC

The MeowMC API

The complete inventory of the linkable MeowMC-specific surface: one interface in the API module, one method on Player.

ClientVersion

import org.meowmc.network.ClientVersion;

public void onJoin(PlayerJoinEvent event) {
    ClientVersion version = event.getPlayer().getClientProtocolVersion();
    int protocol = version.protocolVersion();   // the handshake value the client really sent — never rewritten
    String mc = version.minecraftVersion();     // may be null: no translation registry ships in this build
    if (version.translationActive()) {          // always false in this build — guard anyway, for the future
        version.boundaryProtocols().forEach(this::onBoundary);
    }
}

The version-truth contract, in one sentence: the fork gates admission on supported-set membership and never substitutes a protocol value, so an anti-cheat reading getClientProtocolVersion() — or the inherited NetworkClient#getProtocolVersion() — reads the same real number the client sent.

The boundaries, stated

Everything else MeowMC does is server-internal and not linkable from a plugin:

  • The /meow suite — documented in the user-facing section, but org.meowmc.command and org.meowmc.metrics live in the server module, not the API module, and cannot be linked. What a plugin can do with them is read the report artifacts the suite writes (schema meowmc.report/v1, a local JSON file — see Report artifacts) and register permission-gated access to the suite. Nothing else.
  • Config — org.meowmc.configuration is fork-internal. The plugin-facing surface is the policies file (see Compatibility), not a Java API. There is no MeowConfigurations accessor for plugins, and none is planned.
  • Holograms — the interactive hologram system ships in the jar (see Holograms), but it lives in the server module (org.meowmc.hologram). There is no hologram API in the API module: a plugin cannot supply a placeholder, register a component, or drive a scene programmatically. The .meowui file format is the only authoring surface, and it is a file contract.

Not in this build

  • The org.meowmc.api module and a MeowCapabilities capability service — capability, not brand detection.
  • ThreadingTier moving from the configuration package to the API module.
  • Spatial region execution and every meowmc.exec.mode value other than COMPAT.
  • A plugin-supplied placeholder registry for holograms, and a panel API for the web admin panel.
  • The compatibility linter and the compatibility matrix.