Mimic

Abstraction API for Minecraft RPG plugins

LGPL-3.0 License

Stars
12
Committers
2

Bot releases are hidden (Show)

Mimic - Mimic v0.7

Published by osipxd over 2 years ago

This version has issues breaking compatibility with Minecraft 1.13 - 1.16.5, please use v0.7.1 instead.

BE CAREFUL!
This update brings breaking changes for ClassSystem and LevelSystem registration.
Please verify levels and classes integrations works properly after update to Mimic v0.7.

New implementations registration API

Registration via ServiceManager is deprecated because it was error-prone and not intuitive.
Since now, you should use class Mimic to register or get APIs implementations.

Mimic mimic = Mimic.getInstance();

// Register ItemsRegistry implementation
mimic.registerItemsRegistry(new MyItemsRegistry(), MimicApiLevel.CURRENT, plugin);

// Get items registry imlpementation
BukkitItemsRegistry registry = mimic.getItemsRegistry();

New mechanism allows maintaining better backward compatibility for APIs implementations.
It also allows users to select preferred APIs implementation via config.

API Changes

  • Added default implementations for MimicService methods:
    • isEnabled() returns true by default
    • getId() returns lowercase plugin name by default
  • Breaking change! ID should contain only lowercase Latin letters and digits (a-z, 0-9).
  • Breaking change! BukkitClassSystem.Provider and BukkitLevelSystem.Provider converted to interface instead of abstract classes.
    If you want to use ID different from plugin name, you should override getId() method.
  • BukkitClassSystem.Provider and BukkitLevelSystem.Provider are functional interfaces since now.

Plugin changes

  • Added config file allowing to specify preferred APIs implementations.
  • Fixed errors in case when commands used from console.

Full Changelog: https://github.com/EndlessCodeGroup/Mimic/compare/v0.6.3...v0.7

Mimic - Mimic v0.6.2

Published by osipxd almost 3 years ago

API Changes

  • Added vararg variants of ClassSystem methods

Fixed

  • Check plugin exists before registering built-in integrations
  • Isolate MimicItemsRegistry from exceptions thrown from other items registries implementations.

Housekeeping

  • Update Kotlin to 1.6.10
  • Update Gradle to 7.3.3
  • Migrate tests to MockK and Kotest assertions
Mimic - Mimic v0.6.1

Published by osipxd about 3 years ago

Fixed

  • MimicApiLevel.checkApiLevel now works correctly
Mimic - Mimic 0.6

Published by osipxd about 3 years ago

API

  • Add MimicApiLevel class to check current running Mimic API version:
    // Specify here the version required for APIs you use.
    if (!MimicApiLevel.checkApiLevel(MimicApiLevel.VERSION_0_6)) {
        println("At least Mimic 0.6 is required. Please download it from {link here}")
    }
    
  • Add optional payload to ItemsRegistry.getItem. It may be used to customize item.

Bukkit Plugin

  • More detailed output of command /mimic items info:
    Items Service: mimic
    Known IDs amount: 1161
      rpginventory: 4
      quantumrpg: 55
      mmoitems: 126
      minecraft: 976
    
  • Improve integration with Heroes class system (#14)
  • Add statistics about used items registries
  • Add payload support to MinecraftItemsRegistry.

Housekeeping

  • Add API binary compatibility validation
  • Publish docs to GitHub Pages
  • Update Kotlin to 1.5.21
  • Update bukkit-gradle to 0.10.0
  • Update Gradle to 7.2
Mimic - Mimic 0.5

Published by osipxd over 3 years ago

Added

  • MMOItems items registry (#11)
  • MMOCore classes and levels systems (#11)
  • Heroes classes and levels systems (#12)
  • QuantumRPG items registry, classes and levels systems (#13)

Changed

  • Some minor API changes. Be careful on update.
Package Rankings
Top 31.45% on Repo1.maven.org
Badges
Extracted from project README
Version Build Status Code Quality license Logo Discord
Related Projects