Skip to main content

🔁 Migration from the old APIs

If you integrated with the SsomarDev plugins before the public Maven repository existed, this page maps the old way to the new one. The old classes still work but are deprecated and will be removed in a future major version.

Dependency

BeforeNow
Download SCore.jar manually + <scope>system</scope> + systemPathcom.ssomar:SCore from https://repo.ssomar.com/releases, <scope>provided</scope>
Compile against the premium plugin jarsNot needed — all APIs are in SCore (open source)
<repository>
<id>splugins-repository-releases</id>
<name>SPlugins Repository</name>
<url>https://repo.ssomar.com/releases</url>
</repository>

<dependency>
<groupId>com.ssomar</groupId>
<artifactId>SCore</artifactId>
<version>VERSION</version>
<scope>provided</scope>
</dependency>

Entry points

DeprecatedReplacement
com.ssomar.executableblocks.api.ExecutableBlocksAPIcom.ssomar.score.api.executableblocks.ExecutableBlocksAPI
com.ssomar.executableevents.api.ExecutableEventsAPIcom.ssomar.score.api.executableevents.ExecutableEventsAPI
com.ssomar.myfurniture.api.MyFurnitureAPIcom.ssomar.score.api.myfurniture.MyFurnitureAPI
MyFurnitureAPI.getExecutableItemObject(...) (misnamed)MyFurnitureAPI.getFurnitureObject(...)
ExecutableItemsAPI.registerNewExecutableItemObject(...)ExecutableItemsAPI.registerNewExecutableItem(...)

The new facades return interfaces instead of implementation classes — your code no longer links against premium internals, and a missing plugin raises a clear IllegalStateException instead of a NoClassDefFoundError (guard with isEnabled()).

Events

DeprecatedReplacement
com.ssomar.myfurniture.api.events.FurniturePlaceEvent / FurnitureBreakEventsame names in com.ssomar.score.api.myfurniture.events
com.ssomar.myfurniture.api.load.MyFurniturePostLoadEventsame name in com.ssomar.score.api.myfurniture.load
com.ssomar.executableevents.api.load.ExecutableEventsPostLoadEventsame name in com.ssomar.score.api.executableevents.load
...executableblocks.events.mechanics.pistons.PistonBreakEBPEventcom.ssomar.score.api.executableblocks.events.ExecutableBlockPistonBreakEvent
...executableblocks.events.mechanics.liquid.LiquidBreakEBPEventcom.ssomar.score.api.executableblocks.events.ExecutableBlockLiquidBreakEvent

During the transition, both the legacy and the new events are fired — you can migrate listener by listener.

Behavior changes to know about

  • ExecutableBlockBreakEvent.getBreakMethod() now returns the API enum ExecutableBlockBreakEvent.BreakMethod instead of the internal ExecutableBlockPlaced.BreakMethod — recompile against the new SCore.
  • Facade getters throw IllegalStateException when the target plugin is not installed/enabled (previously: NoClassDefFoundError or an empty manager). Use isEnabled() for optional dependencies.
  • The managers now expose isLoaded() and the *PostLoadEvents carry the manager — prefer these over arbitrary startup delays.

💬 Comments

Have questions or feedback? Join the discussion below!