Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
48f363a
Removed some unused imports
Paul19988 May 31, 2021
f42873a
Remove safe teleport, teleports to spawn
Paul19988 May 31, 2021
4c61b4c
1.17 support
Paul19988 Jul 6, 2021
7e2c239
First 1.17.1 support (Untested)
Paul19988 Jul 8, 2021
4df3012
Possible fix for deleting worlds on file
Paul19988 Jul 10, 2021
b4881f1
Stream close (#48)
samcefalo Jul 19, 2021
51ed30a
possible fix entity nbt saving for paper (#49)
amadeusmz Jul 22, 2021
d0476be
API Updates
Paul19988 Jul 27, 2021
ff7b8aa
Merge branch 'develop' of https://github.com/Paul19988/Advanced-Slime…
Paul19988 Jul 27, 2021
acf1b33
revert paper.io to spigot.org
b0ykoe Jul 27, 2021
20d6692
fix entity loading (#50)
Owen1212055 Jul 28, 2021
91abdf6
optimize height maps (#51)
Owen1212055 Jul 28, 2021
9bec4d1
added private repository for Spigot & Craftbukkit
b0ykoe Jul 30, 2021
0e8bcc5
added potential port to Spigot. Reference #49
b0ykoe Jul 30, 2021
d977b60
removed old CI files
b0ykoe Jul 30, 2021
8196983
Versioning rework
Paul19988 Jul 31, 2021
e839671
Merged changes; updated versioning system
Paul19988 Jul 31, 2021
6e6c5cc
Corrected wrong package
Paul19988 Jul 31, 2021
d6638e6
fix biomes (#53)
Owen1212055 Jul 31, 2021
128bd1f
1.17.1 support?
Paul19988 Jul 31, 2021
fb086be
added old updater config file for now
b0ykoe Aug 1, 2021
57c5d1e
add api (#54)
Owen1212055 Aug 29, 2021
6a2f685
Fix 1.17.1 classmodifiers (#58)
Owen1212055 Aug 29, 2021
2143233
Multi slime readers, Update world version to 1.17, Datafixer, Remove …
Owen1212055 Aug 29, 2021
b507837
Fix dimensions + incorrect field mapping (#57)
Owen1212055 Aug 29, 2021
a9dd299
fix 1.17.1 new constructor (#60)
Owen1212055 Aug 29, 2021
5363e5e
Fix classmodifier lol (#61)
Owen1212055 Aug 29, 2021
37b952d
Added 1.16 support
Paul19988 Sep 2, 2021
83e24a2
resolve #63
Paul19988 Sep 3, 2021
7d9c349
Add onDisable hook for world saving (#67)
ComputerNerd100 Sep 30, 2021
e61a10d
Permit API-Users to configure the DatasourcesConfig on runtime (#66)
dementisimus Sep 30, 2021
406fcb7
Fix 70 (#71)
Owen1212055 Oct 4, 2021
c38026b
Rudimentary fix for unload command (#69)
Gerolmed Oct 4, 2021
6149b49
Add SaveWorldCmd
Paul19988 Oct 9, 2021
906ab1e
added events and completablefuture api (#75)
b0ykoe Oct 9, 2021
fa49c00
switched to the codemc-mc repo for nms
b0ykoe Oct 10, 2021
df4ec21
Merge branch 'develop' of github.com:Paul19988/Advanced-Slime-World-M…
b0ykoe Oct 10, 2021
134827a
pushed patch version since the repo didnt pick up the api changes
b0ykoe Oct 14, 2021
cc88c82
Added types to async methods
Oct 15, 2021
5c1808d
Merge pull request #79 from Paul19988/types-to-future
Gerolmed Oct 21, 2021
a31d703
Drop MongoDB Backups (#78)
TehNeon Oct 21, 2021
f0ade56
Add World Config creation for cloned worlds
ComputerNerd100 Oct 28, 2021
5d95fac
Merge pull request #81 from ComputerNerd100/62-cloning
b0ykoe Oct 28, 2021
4b93431
Remove Main Config (#82)
ComputerNerd100 Nov 2, 2021
31d16bf
Merge remote-tracking branch 'origin/develop' into develop
Paul19988 Nov 2, 2021
f13eabd
removed asyncGenerateWorld
b0ykoe Nov 3, 2021
3bd311e
Add setspawncmd
Paul19988 Nov 7, 2021
169212e
Merge branch 'develop' of https://github.com/Paul19988/Advanced-Slime…
Paul19988 Nov 7, 2021
ced9f01
PAPER
Paul19988 Nov 7, 2021
66bc103
Bump to 2.7.0 > Added maven repo
Paul19988 Nov 7, 2021
c5ad7dd
Bumped api version
Paul19988 Nov 7, 2021
d3a3690
Fixed crashing
Paul19988 Nov 7, 2021
a39347e
Forgot to push this change
Paul19988 Dec 10, 2021
841a097
Added 1.17 entities storage import support (fixing #65) (#87)
DartCZ Dec 10, 2021
da8428b
From compound
Paul19988 Jan 8, 2022
3c5f3a6
Update README.md
ComputerNerd100 Mar 2, 2022
972f238
Correct parameter type
ComputerNerd100 Mar 2, 2022
3687969
Update gradle example (#107)
UntouchedOdin0 Mar 16, 2022
9f8d004
Initial 1.18 Work (#97)
Owen1212055 May 1, 2022
a745ce0
Import clean-up
ComputerNerd100 May 4, 2022
39e1579
Version bump (2.8.0)
ComputerNerd100 May 4, 2022
0dc5aab
Update authors
ComputerNerd100 May 4, 2022
de1b462
Add project information
ComputerNerd100 May 4, 2022
f5f852c
Amend project information
ComputerNerd100 May 4, 2022
ae292c4
Configure API for nexus publishing
ComputerNerd100 May 4, 2022
8af3d6c
Add publish profile
ComputerNerd100 May 4, 2022
cad5900
Properly unload chunk + test nms chunk downgrading
Owen1212055 May 9, 2022
bb42f8d
Dont error in deleted chunks
Owen1212055 May 12, 2022
ebaf89f
Fix null chunk
Owen1212055 May 12, 2022
e462af7
Move unload callback
Owen1212055 May 14, 2022
e6ebc16
Add debug
Owen1212055 May 16, 2022
cf998f3
Remove angry logging for now
Owen1212055 May 16, 2022
d6871fd
Remove outdated(?) check
Owen1212055 May 16, 2022
89f92c7
Debug
Owen1212055 May 16, 2022
08c9b6b
Update CustomWorldServer.java
Owen1212055 May 17, 2022
32ede62
Update CustomWorldServer.java
Owen1212055 May 18, 2022
5772abd
Properly update new chunks + debug
Owen1212055 May 19, 2022
71ea1b6
Add imported worlds to worlds.yml
ComputerNerd100 May 21, 2022
a7f5993
Fix infinite while loop (#126)
tatteaid May 27, 2022
7acb557
Revert "Move unload callback"
Owen1212055 May 28, 2022
a19bfbf
Try to revert changes
Owen1212055 May 28, 2022
75d85f2
Fix #127
Owen1212055 May 28, 2022
8bbe4ac
Fixes Paul19988/Advanced-Slime-World-Manager#128 (#129)
tatteaid Jun 5, 2022
8fe2e34
Add BiomeProvider & Bukkit Gen
Paul19988 Jun 6, 2022
76309de
Merge branch '125/imported-worlds-in-config' into develop
ComputerNerd100 Jun 6, 2022
9360694
Better fix for #127
ComputerNerd100 Jun 6, 2022
b5d74b1
Simplify
Paul19988 Jun 7, 2022
60587df
Merge branch 'develop' of https://github.com/Paul19988/Advanced-Slime…
Paul19988 Jun 7, 2022
f673aa4
Fix bug with better fix for #127
ComputerNerd100 Jun 7, 2022
1115c58
Bump version to 2.8.3-SNAPSHOT & prevent crashing due to large byte a…
Paul19988 Jun 7, 2022
7aed4ca
Merge branch 'develop' of https://github.com/Paul19988/Advanced-Slime…
Paul19988 Jun 7, 2022
27bf70a
Replicate fix across all versions
Paul19988 Jun 7, 2022
f68564d
Revert debug code
Paul19988 Jun 7, 2022
111c433
Handle chunks being saved that aren't properly loaded
Owen1212055 Jun 8, 2022
e328217
No.
Owen1212055 Jun 9, 2022
37f1dfa
Hack a fix
Owen1212055 Jun 9, 2022
17165e7
Merge remote-tracking branch 'remote/develop' into develop
Owen1212055 Jun 9, 2022
21df53c
Fix readonly?
Owen1212055 Jun 11, 2022
e5c497b
Merge 1.19 into develop (#134)
Paul19988 Jun 13, 2022
16b2adb
Probably fixes the unload command
Paul19988 Jun 13, 2022
47d4bdb
yes, this helps too
Paul19988 Jun 13, 2022
ee59ce7
Create README.md (#139)
AdamAtomus Jul 6, 2022
62acdf2
Update README.md
Paul19988 Jul 6, 2022
da099a9
Update README.md
Paul19988 Jul 6, 2022
cf40463
Add relocation for Lettuce
Paul19988 Jul 7, 2022
c80bffd
Update WorldImporter.java
Paul19988 Jul 7, 2022
c9688cb
API: Expose loaded slime worlds list
Jul 28, 2022
6471347
Fix 1.19 description
Jul 28, 2022
f26fe02
Add 1.19.1 Module
Jul 28, 2022
015da69
Add 1.19.1 Converter
Jul 28, 2022
b6a2c42
Add 1.19.1 CraftCLSMBridge
Jul 28, 2022
757b349
Add 1.19.1 NMSSlimeChunk
Jul 28, 2022
4030fcf
Add remaining NMS classes
Jul 28, 2022
381f839
Update plugin to include 1.19.1 NMS Module
Jul 28, 2022
04563de
Add 1.19.1 to NMSTransformer
Jul 28, 2022
1a931a3
1.19.1 release finalisation
Jul 28, 2022
1afbfb0
Fixed thread unsafety (#138)
novastosha Aug 24, 2022
b197c9f
1.19.2 support (#145)
amadeusmz Aug 24, 2022
169d717
[ci skip] Fix typo in SlimeProperty docs (#147)
NoahvdAa Aug 26, 2022
4afb953
Update world importer
Owen1212055 Aug 27, 2022
748fe35
Updated Wiki & small text errors
tatteaid Sep 6, 2022
08fc337
Added faq.md to "other" directory.
tatteaid Sep 6, 2022
08a3a7a
Added Flow-NBT error warning.
tatteaid Sep 6, 2022
da8ba7f
Fix stream closed error on world saving (#150)
amadeusmz Sep 11, 2022
8fa7819
Merge pull request #149 from tatteaid/wiki-update
Gerolmed Sep 24, 2022
0417937
(WIP) Support for chunk recode (#156)
Owen1212055 Oct 1, 2022
af53a66
Initial chunk loading support (#157)
Owen1212055 Oct 1, 2022
d39f805
Saving chunk support (#158)
Owen1212055 Oct 1, 2022
b007956
Entity saving support (#159)
Owen1212055 Oct 1, 2022
cdaf0ef
Fix block entity removing
Owen1212055 Oct 2, 2022
c4513b6
Fix/1.19.2 world importer (#160)
LedariaTim1 Oct 9, 2022
99e4c5f
Set executor for async methods (#161)
renvins Nov 15, 2022
9f7de8c
Fix duping issue (#164)
Teamplayer Dec 17, 2022
ca5458b
Update readme with new repo
Owen1212055 Dec 28, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions .docs/api/custom-build-preparation.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
## How can I build a custom build?

In short, (A)SWM requires the necessary spigot files in your local Maven repository. The easiest way to do this is to use Spigot's build tools [[Link](https://www.spigotmc.org/wiki/buildtools/)]. You can find all the information you need in the Wiki.
In short, ASWM requires the necessary Spigot files in your local Maven repository. The easiest way to do this is to use [Spigot's build tools](https://www.spigotmc.org/wiki/buildtools/). You can find all the information you need in the Wiki.

Summary from the Wiki:
- Download and install Git [[Link](https://git-scm.com/downloads)]
- Download and install Java 8 (AdoptOpenJDK works) [[Link](https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot)]
- Download the BuildTools.jar [[Link](https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar)]
- Open a terminal or shell (the GIT shell also works) and navigate to the file BuildTools.jar
- Build the following glasses, they will automatically be added to your local Maven repo
- `java -jar BuildTools.jar --rev 1.16.3`
- `java -jar BuildTools.jar --rev 1.16.2`
- `java -jar BuildTools.jar --rev 1.16.1`
- Make changes to the (A)SWM and compile it into Maven using `package'.
- Download and install [Git](http://msysgit.github.io/)
- Download and install [Java 17](https://adoptium.net/temurin/releases?version=17) (AdoptOpenJDK works)
- Download the [BuildTools.jar](https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar)
- Open a terminal or shell (the Git shell also works) and navigate to the file **BuildTools.jar**
- Build the following classes, they will automatically be added to your local Maven repo
- `java -jar BuildTools.jar --rev 1.19.2`
- `java -jar BuildTools.jar --rev 1.19.1`
- `java -jar BuildTools.jar --rev 1.19`
- `java -jar BuildTools.jar --rev 1.18.2`
- Make changes to ASWM and compile it into Maven using `package`
10 changes: 6 additions & 4 deletions .docs/api/import-world.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
## Importing Worlds

You need three things to import a world: a world folder, a world name and a data source. Here's an example of how to import a world:
```java
SlimePlugin plugin = (SlimePlugin) Bukkit.getPluginManager().getPlugin("SlimeWorldManager");
Expand All @@ -7,9 +9,9 @@ String worldName = "my_world";
SlimeLoader loader = plugin.getLoader("mysql");

try {
// Note that this method should be called asynchronously
// note that this method should be called asynchronously
plugin.importWorld(worldDir, worldName, loader);
} catch (WorldAlreadyExistsException | InvalidWorldException | WorldLoadedException | WorldTooBigException | IOException ex) {
/* Exception handling */
} catch (WorldAlreadyExistsException | InvalidWorldException | WorldLoadedException | WorldTooBigException | IOException exception) {
// exception handling
}
```
```
12 changes: 7 additions & 5 deletions .docs/api/load-world.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
## Loading Worlds

First, retrieve the SlimeWorldManager plugin API:
```java
SlimePlugin plugin = (SlimePlugin) Bukkit.getPluginManager().getPlugin("SlimeWorldManager");
Expand All @@ -7,17 +9,17 @@ Now, you need a loader. A SlimeLoader is a class that reads and stores worlds fr
SlimeLoader sqlLoader = plugin.getLoader("mysql");
```

Before actually loading the world, you need a SlimePropertyMap Object. Check the [property api documentation](properties.md) for further details.
Before actually loading the world, you need a SlimePropertyMap Object. Check the [property API documentation](properties.md) for further details.

That's it, you've got everything you need! Now, let's load the world from the data source and generate it:
```java
try {
// Note that this method should be called asynchronously
// note that this method should be called asynchronously
SlimeWorld world = plugin.loadWorld(sqlLoader, "my-world", props);

// This method must be called synchronously
// note that this method must be called synchronously
plugin.generateWorld(world);
} catch (UnknownWorldException | IOException | CorruptedWorldException | NewerFormatException | WorldInUseException | UnsupportedWorldException ex) {
/* Exception handling */
} catch (UnknownWorldException | IOException | CorruptedWorldException | NewerFormatException | WorldInUseException | UnsupportedWorldException exception) {
// exception handling
}
```
10 changes: 5 additions & 5 deletions .docs/api/migrate-world.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
## Migrating Worlds

To migrate a world you need three things: a world name, the data source where the world is currently stored in and another data source to store the world. Here's an example of a world migration:
```java
SlimePlugin plugin = (SlimePlugin) Bukkit.getPluginManager().getPlugin("SlimeWorldManager");
Expand All @@ -7,11 +9,9 @@ SlimeLoader currentLoader = plugin.getLoader("mysql");
SlimeLoader newLoader = plugin.getLoader("mongodb");

try {
// Note that this method should be called asynchronously
// note that this method should be called asynchronously
plugin.migrateWorld(worldName, currentLoader, newLoader);
} catch (IOException | WorldInUseException | WorldAlreadyExistsException | UnknownWorldException ex) {
/* Exception handling */
} catch (IOException | WorldInUseException | WorldAlreadyExistsException | UnknownWorldException exception) {
// exception handling
}
```

That's it!
7 changes: 3 additions & 4 deletions .docs/api/properties.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
# Properties API

Property "types" are handled by [SlimeProperty][1] instances. Whilst not allowing to create [SlimeProperty][1] objects, there is a [list of all availeable properties][2]. Properties and their values are stored in [SlimePropertyMaps][3].
Property "types" are handled by [SlimeProperty][1] instances. Whilst creating [SlimeProperty][1] objects is not allowed, there is a [list of all available properties][2]. Properties and their values are stored in [SlimePropertyMaps][3].


**Example Usage:**
```java
// Create a new and empty property map
// create a new and empty property map
SlimePropertyMap properties = new SlimePropertyMap();

properties.setString(SlimeProperties.DIFFICULTY, "normal");
properties.setInt(SlimeProperties.SPAWN_X, 123);
properties.setInt(SlimeProperties.SPAWN_Y, 112);
properties.setInt(SlimeProperties.SPAWN_Z, 170);
/* Add as many as you like */
// add as many as you would like
```


[1]: ../../slimeworldmanager-api/src/main/java/com/grinderwolf/swm/api/world/properties/SlimeProperty.java
[2]: ../../slimeworldmanager-api/src/main/java/com/grinderwolf/swm/api/world/properties/SlimeProperties.java
[3]: ../../slimeworldmanager-api/src/main/java/com/grinderwolf/swm/api/world/properties/SlimePropertyMap.java
46 changes: 33 additions & 13 deletions .docs/api/setup-dev.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,48 @@
### Building
# Development Setup

To build SWM, execute the following command int the project root:
## Building the Plugin

To build ASWM, execute the following command in the project root:

```
mvn clean install
gradle clean shadowJar
```

## Using the API

If your plugin wants to use Slime World Manager add the following in your pom.xml

### Maven
If your plugin wants to use Advanced Slime World Manager add the following in your plugin:

### Maven
```xml
<repository>
<id>swm-repo</id>
<url>https://repo.glaremasters.me/repository/concuncan/</url>
</repository>
<repositories>
<repository>
<id>rapture-snapshots</id>
<url>https://repo.rapture.pw/repository/maven-snapshots/</url>
</repository>
</repositories>
```

```xml
<dependency>
<dependencies>
<dependency>
<groupId>com.grinderwolf</groupId>
<artifactId>slimeworldmanager-api</artifactId>
<version>(insert latest version here)</version>
<version>INSERT LATEST VERSION HERE</version>
<scope>provided</scope>
</dependency>
```
</dependency>
</dependencies>
```

### Gradle
```groovy
repositories {
maven { url = 'https://repo.rapture.pw/repository/maven-snapshots/' }
}

dependencies {
compileOnly 'com.grinderwolf:slimeworldmanager-api:INSERT LATEST VERSION HERE'
}
```

**If you run into any Flow-NBT errors when building your project, add the additional repository: `https://repo.rapture.pw/repository/maven-releases/`**
8 changes: 5 additions & 3 deletions .docs/api/use-data-source.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
Slime World Manager supports three data sources out of the box: the filesystem, MySQL and MongoDB. However, there are situations where you might want to use other data sources. To do so, you can create your own implementation of the SlimeLoader interface.
## Custom Data Sources

SlimeLoaders are classes used to load worlds from specific data sources. Remember to check out the [docs](https://grinderwolf.github.io/Slime-World-Manager/apidocs/) for the SlimeLoader interface prior to creating your own implementation, as it contains information on what every method should exactly do. You can also take a look at the [FileLoader class](../../slimeworldmanager-plugin/src/main/java/com/grinderwolf/swm/plugin/loaders/FileLoader.java) for an example of a SlimeLoader.
Advanced Slime World Manager supports three data sources out of the box: the file system, MySQL and MongoDB. However, there are situations where you might want to use other data sources. To do so, you can create your own implementation of the SlimeLoader interface.

SlimeLoaders are classes used to load worlds from specific data sources. Remember to check out the [docs](https://grinderwolf.github.io/Slime-World-Manager/apidocs/) for the SlimeLoader interface prior to creating your own implementation, as it contains information on what every method should exactly do. You can also take a look at the [FileLoader class](../../slimeworldmanager-plugin/src/main/java/com/grinderwolf/swm/plugin/loaders/file/FileLoader.java) for an example of a SlimeLoader.

Once you've got your own SlimeLoader, remember to register it so you can use it later:
```java
SlimePlugin plugin = (SlimePlugin) Bukkit.getPluginManager().getPlugin("SlimeWorldManager");

plugin.registerLoader("my_data_source", new MyCustomSlimeLoader());
```
```
4 changes: 3 additions & 1 deletion .docs/config/configure-world.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
To configure a world, open the 'worlds.yml' file inside the SWM config folder. Here is an example of a worlds.yml file:
# World Configuration

To configure a world, open the 'worlds.yml' file inside the ASWM config folder. Here is an example of a worlds.yml file:
```yaml
worlds:
my_great_world:
Expand Down
14 changes: 7 additions & 7 deletions .docs/config/convert-world-to-srf.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
To be able to load a world with SWM, you have to convert it to the SRF. There are two ways of doing this:
# Converting Worlds

To be able to load a world with ASWM, you have to convert it to the SRF. There are two ways of doing this:

## Using the in-game command

Expand Down Expand Up @@ -34,17 +36,15 @@ The importer tool provides some command line arguments to configure the behavior

### Usage as API

The importer tool may be used as a dependency in your projects to import worlds programatically.
The importer tool may be used as a dependency in your projects to import worlds programmatically.

The basic usage of the API is as follows:
```java
File theOutputFile = SWMImporter.getDestinationFile(theWorldDir);

try {
SWMImporter.importWorld(theWorldDir, theOutputFile, true);
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidWorldException e) {
e.printStackTrace();
} catch (IOException | InvalidWorldException exception) {
// exception handling
}
```
```
7 changes: 5 additions & 2 deletions .docs/config/setup-data-sources.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
## Data Source Configuration

Before using MySQL or MongoDB to store your worlds, you've got to configure them. To do so, navigate to the SWM config folder located inside your plugins directory, and open the 'sources.yml' file. Inside there are all the parameters you need to set. Here's an example of how your sources.yml should look like:

```yaml
file:
path: slime_worlds # The path to the directory where slime worlds are stored
# The path to the directory where slime worlds are stored
path: slime_worlds
mysql:
enabled: true
host: 127.0.0.1
Expand All @@ -21,4 +24,4 @@ mongodb:
collection: worlds
```

**Remember to enable MySQL and/or MongoDB if you are going to use them!**
**Remember to enable MySQL and/or MongoDB if you are going to use them!**
28 changes: 0 additions & 28 deletions .docs/faq.md

This file was deleted.

27 changes: 27 additions & 0 deletions .docs/other/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## FAQ

### Which Spigot versions is this compatible with?

Currently, ASWM can run on any Spigot version from 1.18.2 up to 1.19.2. If you are running on an outdated version, use [SWM](https://www.spigotmc.org/resources/slimeworldmanager.69974/).

### Can I override the default world?

Yes, you can! However, it does not work on versions 1.19+.

### My server stops when booting up with a 'Failed to find ClassModifier classes' error.

Go to [Installing Slime World Manager](../usage/install.md) and follow the steps described there.

### I'm getting a `javassist.CannotCompileException: [source error] acceptConnections() not found in net.minecraft.server.v1_14_R1.ServerConnection` error on startup.

You are running an outdated spigot version. Please update to the latest version. If this keeps happening after updating, open an issue.

### Is ASWM compatible with Multiverse-Core?

Multiverse-Core detects ASWM worlds as unloaded, as it cannot find the world directory, and then just ignores them. There should not be any issues; however, Multiverse-Core commands will not work with ASWM worlds.

### What's the world size limit?

The Slime Region Format can handle up a 46340x4630 chunk area. That's the maximum size that SWM can _theoretically_ handle, given enough memory. However, having a world so big is not recommended at all.

There's not a specific value that you shouldn't exceed _- except for the theoretical limit, of course_. ASWM keeps a copy of all the chunks loaded in memory until the world is unloaded, so the more chunks you have, the bigger the ram usage is. How far you want to go depends on how much ram you are willing to let ASWM use. Moreover, the ram usage per chunk isn't a constant value, as it depends on the actual data stored in the chunk.
Loading