Compare commits
18 commits
Author | SHA1 | Date | |
---|---|---|---|
9b7192c091 | |||
416393ea77 | |||
8770debfef | |||
d70fb4f812 | |||
28b3965582 | |||
|
415fa6b5d2 | ||
|
1798960183 | ||
|
722ddffdd2 | ||
|
c54880e5c2 | ||
|
914f4a5b31 | ||
|
b43ca07722 | ||
|
d637797628 | ||
501d5912b9 | |||
017e559641 | |||
c43598dd2f | |||
ad3a9202b2 | |||
2a7a968825 | |||
e596814669 |
5 changed files with 254 additions and 83 deletions
57
.github/workflows/maven.yml
vendored
Normal file
57
.github/workflows/maven.yml
vendored
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
# This workflow will build a Java project with Maven
|
||||||
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
||||||
|
|
||||||
|
name: Java CI with Maven
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '*'
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Get version information
|
||||||
|
id: version
|
||||||
|
uses: ncipollo/semantic-version-action@v1
|
||||||
|
- name: Set up JDK 11
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
java-package: jdk # (jre, jdk, or jdk+fx) - defaults to jdk
|
||||||
|
architecture: x86 # (x64 or x86) - defaults to x64
|
||||||
|
- run: wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
|
||||||
|
- run: java -jar BuildTools.jar --rev 1.16.4
|
||||||
|
- name: Cache Maven packages
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.m2
|
||||||
|
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
||||||
|
restore-keys: ${{ runner.os }}-m2
|
||||||
|
- name: Build with Maven
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: mvn -B package --file pom.xml
|
||||||
|
- run: mkdir staging && cp target/*.jar staging
|
||||||
|
- name: Generate release diff
|
||||||
|
env:
|
||||||
|
BEGIN_COMMIT: ${{ steps.version.outputs.previous_tag }}
|
||||||
|
END_COMMIT: ${{ steps.version.outputs.tag }}
|
||||||
|
run: git fetch --tags --force && git log --pretty=format:"* %s (%h)" ${BEGIN_COMMIT}..${END_COMMIT} > release_notes.md
|
||||||
|
- name: Create release
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
artifacts: staging/*
|
||||||
|
allowUpdates: true
|
||||||
|
bodyFile: "release_notes.md"
|
||||||
|
draft: false
|
||||||
|
prerelease: false
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
@ -1,5 +1,6 @@
|
||||||
|
![Java CI with Maven](https://github.com/TBMCPlugins/CustomDimensions/workflows/Java%20CI%20with%20Maven/badge.svg)
|
||||||
# CustomDimensions
|
# CustomDimensions
|
||||||
Custom dimension support for 1.16.3 Bukkit/Spigot/Paper servers
|
Custom dimension support for 1.16.4 Bukkit/Spigot/Paper servers
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
See on [SpigotMC](https://www.spigotmc.org/resources/1-16-custom-dimensions.83731/)
|
See on [SpigotMC](https://www.spigotmc.org/resources/1-16-custom-dimensions.83731/)
|
||||||
|
|
78
pom.xml
78
pom.xml
|
@ -6,17 +6,45 @@
|
||||||
|
|
||||||
<groupId>com.github.TBMCPlugins</groupId>
|
<groupId>com.github.TBMCPlugins</groupId>
|
||||||
<artifactId>CustomDimensions</artifactId>
|
<artifactId>CustomDimensions</artifactId>
|
||||||
<version>1.1</version>
|
<version>1.6.0</version>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.8.1</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>10</source>
|
<!-- Make sure we're not using Java 9+ APIs -->
|
||||||
<target>10</target>
|
<release>8</release>
|
||||||
|
<source>14</source>
|
||||||
|
<target>14</target>
|
||||||
|
<compilerArgs>
|
||||||
|
<arg>-Xplugin:jabel</arg>
|
||||||
|
</compilerArgs>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
<version>3.2.4</version>
|
||||||
|
<configuration>
|
||||||
|
<relocations>
|
||||||
|
<relocation>
|
||||||
|
<pattern>org.bstats</pattern>
|
||||||
|
<shadedPattern>buttondevteam.customdimensions.bstats</shadedPattern>
|
||||||
|
</relocation>
|
||||||
|
</relocations>
|
||||||
|
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shade</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
@ -25,15 +53,55 @@
|
||||||
<id>spigot-repo</id>
|
<id>spigot-repo</id>
|
||||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>jitpack.io</id>
|
||||||
|
<url>https://jitpack.io/</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot</artifactId>
|
<artifactId>spigot</artifactId>
|
||||||
<version>1.16.3-R0.1-SNAPSHOT</version>
|
<version>1.16.4-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.bsideup.jabel</groupId>
|
||||||
|
<artifactId>jabel-javac-plugin</artifactId>
|
||||||
|
<version>0.3.0</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bstats</groupId>
|
||||||
|
<artifactId>bstats-bukkit</artifactId>
|
||||||
|
<version>2.2.1</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>intellij-idea-only</id>
|
||||||
|
<activation>
|
||||||
|
<property>
|
||||||
|
<name>idea.maven.embedder.version</name>
|
||||||
|
</property>
|
||||||
|
</activation>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<release>14</release>
|
||||||
|
<compilerArgs>
|
||||||
|
<arg>--enable-preview</arg>
|
||||||
|
</compilerArgs>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
</project>
|
||||||
|
|
|
@ -2,23 +2,30 @@ package buttondevteam.customdimensions;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.util.concurrent.Callables;
|
||||||
import com.mojang.serialization.Lifecycle;
|
import com.mojang.serialization.Lifecycle;
|
||||||
import net.minecraft.server.v1_16_R2.*;
|
import net.minecraft.server.v1_16_R3.*;
|
||||||
|
import org.bstats.bukkit.Metrics;
|
||||||
|
import org.bstats.charts.SimplePie;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.WorldType;
|
import org.bukkit.WorldType;
|
||||||
import org.bukkit.craftbukkit.v1_16_R2.CraftServer;
|
import org.bukkit.craftbukkit.v1_16_R3.CraftServer;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.world.WorldInitEvent;
|
import org.bukkit.event.world.WorldInitEvent;
|
||||||
import org.bukkit.event.world.WorldLoadEvent;
|
import org.bukkit.event.world.WorldLoadEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class CustomDimensions extends JavaPlugin implements Listener {
|
public class CustomDimensions extends JavaPlugin implements Listener {
|
||||||
|
private Metrics metrics;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
//Bukkit.getPluginManager().registerEvents(this, this);
|
metrics = new Metrics(this, 10545);
|
||||||
getLogger().info("Loading custom dimensions...");
|
getLogger().info("Loading custom dimensions...");
|
||||||
try {
|
try {
|
||||||
load();
|
load();
|
||||||
|
@ -36,83 +43,120 @@ public class CustomDimensions extends JavaPlugin implements Listener {
|
||||||
GeneratorSettings mainGenSettings = saveData.getGeneratorSettings();
|
GeneratorSettings mainGenSettings = saveData.getGeneratorSettings();
|
||||||
RegistryMaterials<WorldDimension> dimensionRegistry = mainGenSettings.d();
|
RegistryMaterials<WorldDimension> dimensionRegistry = mainGenSettings.d();
|
||||||
|
|
||||||
var dimIterator = dimensionRegistry.d().iterator();
|
|
||||||
|
|
||||||
var mainWorld = Bukkit.getWorlds().get(0);
|
var mainWorld = Bukkit.getWorlds().get(0);
|
||||||
|
|
||||||
var convertable = Convertable.a(Bukkit.getWorldContainer().toPath());
|
var convertable = Convertable.a(Bukkit.getWorldContainer().toPath());
|
||||||
|
|
||||||
while (dimIterator.hasNext()) {
|
if (!getConfig().contains("ignored")) {
|
||||||
Map.Entry<ResourceKey<WorldDimension>, WorldDimension> dimEntry = dimIterator.next();
|
getConfig().set("ignored", Lists.newArrayList("single_biome"));
|
||||||
ResourceKey<WorldDimension> dimKey = dimEntry.getKey();
|
saveConfig();
|
||||||
|
}
|
||||||
if (dimKey != WorldDimension.OVERWORLD //The default dimensions are already loaded
|
var ignored = getConfig().getStringList("ignored");
|
||||||
&& dimKey != WorldDimension.THE_NETHER
|
int allCount = -3, loadedCount = 0, ignoredCount = 0; //-3: overworld, nether, end
|
||||||
&& dimKey != WorldDimension.THE_END) {
|
for (var dimEntry : dimensionRegistry.d()) {
|
||||||
ResourceKey<World> worldKey = ResourceKey.a(IRegistry.L, dimKey.a());
|
allCount++;
|
||||||
DimensionManager dimensionmanager = dimEntry.getValue().b();
|
if (ignored.contains(dimEntry.getKey().a().getKey())) {
|
||||||
ChunkGenerator chunkgenerator = dimEntry.getValue().c();
|
getLogger().info(dimEntry.getKey() + " is on the ignore list");
|
||||||
var name = dimKey.a().getKey();
|
ignoredCount++;
|
||||||
getLogger().info("Loading " + name);
|
continue;
|
||||||
var session = convertable.new ConversionSession(name, dimKey) { //The original session isn't prepared for custom dimensions
|
|
||||||
@Override
|
|
||||||
public File a(ResourceKey<World> resourcekey) {
|
|
||||||
return new File(this.folder.toFile(), "custom");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
MinecraftServer.convertWorld(session);
|
|
||||||
|
|
||||||
//Load world settings or create default values
|
|
||||||
RegistryReadOps<NBTBase> registryreadops = RegistryReadOps.a(DynamicOpsNBT.a, console.dataPackResources.h(), console.customRegistry);
|
|
||||||
WorldDataServer worlddata = (WorldDataServer) session.a(registryreadops, console.datapackconfiguration);
|
|
||||||
if (worlddata == null) {
|
|
||||||
Properties properties = new Properties();
|
|
||||||
properties.put("level-seed", Objects.toString(mainWorld.getSeed()));
|
|
||||||
properties.put("generate-structures", Objects.toString(true));
|
|
||||||
properties.put("level-type", WorldType.NORMAL.getName());
|
|
||||||
GeneratorSettings dimGenSettings = GeneratorSettings.a(console.getCustomRegistry(), properties);
|
|
||||||
WorldSettings worldSettings = new WorldSettings(name,
|
|
||||||
EnumGamemode.getById(Bukkit.getDefaultGameMode().getValue()),
|
|
||||||
false, //Hardcore
|
|
||||||
EnumDifficulty.EASY, false, new GameRules(), console.datapackconfiguration);
|
|
||||||
worlddata = new WorldDataServer(worldSettings, dimGenSettings, Lifecycle.stable());
|
|
||||||
}
|
|
||||||
|
|
||||||
worlddata.checkName(name);
|
|
||||||
worlddata.a(console.getServerModName(), console.getModded().isPresent());
|
|
||||||
if (console.options.has("forceUpgrade")) {
|
|
||||||
net.minecraft.server.v1_16_R2.Main.convertWorld(session, DataConverterRegistry.a(),
|
|
||||||
console.options.has("eraseCache"), () -> true,
|
|
||||||
worlddata.getGeneratorSettings().d().d().stream()
|
|
||||||
.map((entry2) -> ResourceKey.a(IRegistry.K, entry2.getKey().a()))
|
|
||||||
.collect(ImmutableSet.toImmutableSet()));
|
|
||||||
}
|
|
||||||
|
|
||||||
List<MobSpawner> spawners = ImmutableList.of(new MobSpawnerPhantom(), new MobSpawnerPatrol(), new MobSpawnerCat(), new VillageSiege(), new MobSpawnerTrader(worlddata));
|
|
||||||
|
|
||||||
ResourceKey<DimensionManager> dimManResKey = ResourceKey.a(IRegistry.K, dimKey.a());
|
|
||||||
//Replace existing dimension manager, correctly setting the ID up (which is -1 for default worlds...)
|
|
||||||
((RegistryMaterials<DimensionManager>) console.customRegistry.a()).a(OptionalInt.empty(), dimManResKey, dimensionmanager, Lifecycle.stable());
|
|
||||||
|
|
||||||
var worldloadlistener = console.worldLoadListenerFactory.create(11);
|
|
||||||
|
|
||||||
WorldServer worldserver = new WorldServer(console, console.executorService, session,
|
|
||||||
worlddata, worldKey, dimensionmanager, worldloadlistener, chunkgenerator,
|
|
||||||
false, //isDebugWorld
|
|
||||||
BiomeManager.a(worlddata.getGeneratorSettings().getSeed()), //Biome seed
|
|
||||||
spawners, false, org.bukkit.World.Environment.NORMAL, null);
|
|
||||||
|
|
||||||
if (Bukkit.getWorld(name.toLowerCase(Locale.ENGLISH)) == null) {
|
|
||||||
getLogger().warning("Failed to load custom dimension " + name);
|
|
||||||
} else {
|
|
||||||
console.initWorld(worldserver, worlddata, worlddata, worlddata.getGeneratorSettings());
|
|
||||||
worldserver.setSpawnFlags(true, true);
|
|
||||||
console.worldServer.put(worldserver.getDimensionKey(), worldserver);
|
|
||||||
Bukkit.getPluginManager().callEvent(new WorldInitEvent(worldserver.getWorld()));
|
|
||||||
console.loadSpawn(worldserver.getChunkProvider().playerChunkMap.worldLoadListener, worldserver);
|
|
||||||
Bukkit.getPluginManager().callEvent(new WorldLoadEvent(worldserver.getWorld()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
if (loadDimension(dimEntry.getKey(), dimEntry.getValue(), convertable, console, mainWorld))
|
||||||
|
loadedCount++;
|
||||||
|
} catch (Exception e) {
|
||||||
|
getLogger().warning("Failed to load dimension " + dimEntry.getKey());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
metrics.addCustomChart(new SimplePie("all_custom_dimensions", Callables.returning(allCount + "")));
|
||||||
|
metrics.addCustomChart(new SimplePie("loaded_custom_dimensions", Callables.returning(loadedCount + "")));
|
||||||
|
metrics.addCustomChart(new SimplePie("ignored_custom_dimensions", Callables.returning(ignoredCount + "")));
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean loadDimension(ResourceKey<WorldDimension> dimKey, WorldDimension dimension,
|
||||||
|
Convertable convertable, DedicatedServer console, org.bukkit.World mainWorld) throws IOException {
|
||||||
|
if (dimKey == WorldDimension.OVERWORLD //The default dimensions are already loaded
|
||||||
|
|| dimKey == WorldDimension.THE_NETHER
|
||||||
|
|| dimKey == WorldDimension.THE_END)
|
||||||
|
return false;
|
||||||
|
ResourceKey<World> worldKey = ResourceKey.a(IRegistry.L, dimKey.a());
|
||||||
|
DimensionManager dimensionmanager = dimension.b();
|
||||||
|
ChunkGenerator chunkgenerator = dimension.c();
|
||||||
|
String name = getConfig().getString("worldNames." + dimKey.a());
|
||||||
|
if (name == null)
|
||||||
|
name = dimKey.a().getKey();
|
||||||
|
if (Bukkit.getWorld(name) != null) {
|
||||||
|
getLogger().info(name + " already loaded");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
getLogger().info("Loading " + name);
|
||||||
|
var session = convertable.new ConversionSession(name, dimKey) { //The original session isn't prepared for custom dimensions
|
||||||
|
@Override
|
||||||
|
public File a(ResourceKey<World> resourcekey) {
|
||||||
|
return new File(this.folder.toFile(), "custom");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
MinecraftServer.convertWorld(session);
|
||||||
|
|
||||||
|
//Load world settings or create default values
|
||||||
|
RegistryReadOps<NBTBase> registryreadops = RegistryReadOps.a(DynamicOpsNBT.a, console.dataPackResources.h(), console.customRegistry);
|
||||||
|
WorldDataServer worlddata = (WorldDataServer) session.a(registryreadops, console.datapackconfiguration);
|
||||||
|
if (worlddata == null) {
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.put("level-seed", Objects.toString(mainWorld.getSeed()));
|
||||||
|
properties.put("generate-structures", Objects.toString(true));
|
||||||
|
properties.put("level-type", WorldType.NORMAL.getName());
|
||||||
|
GeneratorSettings dimGenSettings = GeneratorSettings.a(console.getCustomRegistry(), properties);
|
||||||
|
WorldSettings worldSettings = new WorldSettings(name,
|
||||||
|
EnumGamemode.getById(Bukkit.getDefaultGameMode().getValue()),
|
||||||
|
false, //Hardcore
|
||||||
|
EnumDifficulty.EASY, false, new GameRules(), console.datapackconfiguration);
|
||||||
|
worlddata = new WorldDataServer(worldSettings, dimGenSettings, Lifecycle.stable());
|
||||||
|
}
|
||||||
|
|
||||||
|
worlddata.checkName(name);
|
||||||
|
worlddata.a(console.getServerModName(), console.getModded().isPresent());
|
||||||
|
if (console.options.has("forceUpgrade")) {
|
||||||
|
net.minecraft.server.v1_16_R3.Main.convertWorld(session, DataConverterRegistry.a(),
|
||||||
|
console.options.has("eraseCache"), () -> true,
|
||||||
|
worlddata.getGeneratorSettings().d().d().stream()
|
||||||
|
.map((entry2) -> ResourceKey.a(IRegistry.K, entry2.getKey().a()))
|
||||||
|
.collect(ImmutableSet.toImmutableSet()));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MobSpawner> spawners = ImmutableList.of(new MobSpawnerPhantom(), new MobSpawnerPatrol(), new MobSpawnerCat(), new VillageSiege(), new MobSpawnerTrader(worlddata));
|
||||||
|
|
||||||
|
ResourceKey<DimensionManager> dimManResKey = ResourceKey.a(IRegistry.K, dimKey.a());
|
||||||
|
var dimRegistry = ((RegistryMaterials<DimensionManager>) console.customRegistry.a());
|
||||||
|
{
|
||||||
|
var key = dimRegistry.getKey(dimensionmanager);
|
||||||
|
if (key == null) { //The loaded manager is different - different dimension type
|
||||||
|
//Replace existing dimension manager, correctly setting the ID up (which is -1 for default worlds...)
|
||||||
|
dimRegistry.a(OptionalInt.empty(), dimManResKey, dimensionmanager, Lifecycle.stable());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var worldloadlistener = console.worldLoadListenerFactory.create(11);
|
||||||
|
|
||||||
|
WorldServer worldserver = new WorldServer(console, console.executorService, session,
|
||||||
|
worlddata, worldKey, dimensionmanager, worldloadlistener, chunkgenerator,
|
||||||
|
false, //isDebugWorld
|
||||||
|
BiomeManager.a(worlddata.getGeneratorSettings().getSeed()), //Biome seed
|
||||||
|
spawners,
|
||||||
|
true, //Update world time
|
||||||
|
org.bukkit.World.Environment.NORMAL, null);
|
||||||
|
|
||||||
|
if (Bukkit.getWorld(name.toLowerCase(Locale.ENGLISH)) == null) {
|
||||||
|
getLogger().warning("Failed to load custom dimension " + name);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
console.initWorld(worldserver, worlddata, worlddata, worlddata.getGeneratorSettings());
|
||||||
|
worldserver.setSpawnFlags(true, true);
|
||||||
|
console.worldServer.put(worldserver.getDimensionKey(), worldserver);
|
||||||
|
Bukkit.getPluginManager().callEvent(new WorldInitEvent(worldserver.getWorld()));
|
||||||
|
console.loadSpawn(worldserver.getChunkProvider().playerChunkMap.worldLoadListener, worldserver);
|
||||||
|
Bukkit.getPluginManager().callEvent(new WorldLoadEvent(worldserver.getWorld()));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
name: CustomDimensions
|
name: CustomDimensions
|
||||||
main: buttondevteam.customdimensions.CustomDimensions
|
main: buttondevteam.customdimensions.CustomDimensions
|
||||||
version: '1.1'
|
version: '1.6'
|
||||||
api-version: '1.16'
|
api-version: '1.16'
|
||||||
loadbefore:
|
loadbefore:
|
||||||
- Multiverse-Core
|
- Multiverse-Core
|
||||||
|
- Hyperverse
|
||||||
|
|
Loading…
Reference in a new issue