Add Squaremap Integration (#156)
This commit is contained in:
1 parent
fdc69bab13
commit
10a508495b
5 files changed
+42
-26
No files matched your search
@@ -14,6 +14,11 @@ subprojects {
|
||||
group = "${project.property("group")}"
|
||||
version = "${project.property("version")}.${commitsSinceLastTag()}"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven("https://oss.sonatype.org/content/repositories/snapshots/")
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion.set(JavaLanguageVersion.of(8))
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
repositories {
|
||||
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
|
||||
maven("https://papermc.io/repo/repository/maven-public")
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ name: ${name}
|
||||
version: ${version}
|
||||
main: ${group}.chunky.ChunkyBukkit
|
||||
api-version: 1.13
|
||||
softdepend: [dynmap, BlueMap, Pl3xMap, WorldBorder]
|
||||
softdepend: [dynmap, BlueMap, squaremap, WorldBorder]
|
||||
load: POSTWORLD
|
||||
authors: [${author}]
|
||||
description: ${description}
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
|
||||
maven("https://repo.mikeprimm.com")
|
||||
maven("https://repo.pl3x.net")
|
||||
maven("https://repo.jpenilla.xyz/snapshots/")
|
||||
maven("https://jitpack.io")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly(group = "us.dynmap", name = "dynmap-api", version = "3.1")
|
||||
compileOnly(group = "com.github.BlueMap-Minecraft", name = "BlueMapAPI", version = "v1.6.0")
|
||||
compileOnly(group = "net.pl3x.map", name = "pl3xmap-api", version = "1.0.0-SNAPSHOT")
|
||||
compileOnly(group = "xyz.jpenilla", name = "squaremap-api", version = "1.1.0-SNAPSHOT")
|
||||
compileOnly(group = "com.github.Brettflan", name = "WorldBorder", version = "c0d1772418")
|
||||
testImplementation(group = "junit", name = "junit", version = "4.13.2")
|
||||
testImplementation(group = "com.google.code.gson", name = "gson", version = "2.8.7")
|
||||
|
||||
+33
-22
@@ -1,46 +1,49 @@
|
||||
package org.popcraft.chunky.integration;
|
||||
|
||||
import net.pl3x.map.api.Key;
|
||||
import net.pl3x.map.api.LayerProvider;
|
||||
import net.pl3x.map.api.MapWorld;
|
||||
import net.pl3x.map.api.Pl3xMap;
|
||||
import net.pl3x.map.api.Point;
|
||||
import net.pl3x.map.api.Registry;
|
||||
import net.pl3x.map.api.SimpleLayerProvider;
|
||||
import net.pl3x.map.api.marker.Marker;
|
||||
import net.pl3x.map.api.marker.MarkerOptions;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.popcraft.chunky.platform.World;
|
||||
import org.popcraft.chunky.platform.util.Vector2;
|
||||
import org.popcraft.chunky.shape.AbstractEllipse;
|
||||
import org.popcraft.chunky.shape.AbstractPolygon;
|
||||
import org.popcraft.chunky.shape.Circle;
|
||||
import org.popcraft.chunky.shape.Shape;
|
||||
import xyz.jpenilla.squaremap.api.BukkitAdapter;
|
||||
import xyz.jpenilla.squaremap.api.Key;
|
||||
import xyz.jpenilla.squaremap.api.LayerProvider;
|
||||
import xyz.jpenilla.squaremap.api.MapWorld;
|
||||
import xyz.jpenilla.squaremap.api.Point;
|
||||
import xyz.jpenilla.squaremap.api.Registry;
|
||||
import xyz.jpenilla.squaremap.api.SimpleLayerProvider;
|
||||
import xyz.jpenilla.squaremap.api.Squaremap;
|
||||
import xyz.jpenilla.squaremap.api.WorldIdentifier;
|
||||
import xyz.jpenilla.squaremap.api.marker.Marker;
|
||||
import xyz.jpenilla.squaremap.api.marker.MarkerOptions;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class Pl3xMapIntegration extends AbstractMapIntegration {
|
||||
private static final Key WORLDBORDER_KEY = Key.of("pl3xmap-worldborder");
|
||||
public class SquaremapIntegration extends AbstractMapIntegration {
|
||||
private static final Key WORLDBORDER_KEY = Key.of("squaremap-worldborder");
|
||||
private static final Key CHUNKY_KEY = Key.of("chunky");
|
||||
private final Pl3xMap pl3xMap;
|
||||
private final Map<UUID, LayerProvider> defaultProviders = new HashMap<>();
|
||||
private final Squaremap squaremap;
|
||||
private final Map<String, LayerProvider> defaultProviders = new HashMap<>();
|
||||
private boolean hideByDefault;
|
||||
private int priority;
|
||||
|
||||
public Pl3xMapIntegration(Pl3xMap pl3xMap) {
|
||||
this.pl3xMap = pl3xMap;
|
||||
public SquaremapIntegration(Squaremap squaremap) {
|
||||
this.squaremap = squaremap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addShapeMarker(final World world, final Shape shape) {
|
||||
pl3xMap.getWorldIfEnabled(world.getUUID()).ifPresent(pl3xWorld -> {
|
||||
Registry<LayerProvider> layerRegistry = pl3xWorld.layerRegistry();
|
||||
getBukkitWorldIdentifier(world).flatMap(squaremap::getWorldIfEnabled).ifPresent(squaremapWorld -> {
|
||||
Registry<LayerProvider> layerRegistry = squaremapWorld.layerRegistry();
|
||||
if (layerRegistry.hasEntry(WORLDBORDER_KEY)) {
|
||||
defaultProviders.put(pl3xWorld.uuid(), layerRegistry.get(WORLDBORDER_KEY));
|
||||
defaultProviders.put(squaremapWorld.identifier().asString(), layerRegistry.get(WORLDBORDER_KEY));
|
||||
layerRegistry.unregister(WORLDBORDER_KEY);
|
||||
}
|
||||
if (!layerRegistry.hasEntry(CHUNKY_KEY)) {
|
||||
@@ -84,18 +87,18 @@ public class Pl3xMapIntegration extends AbstractMapIntegration {
|
||||
|
||||
@Override
|
||||
public void removeShapeMarker(final World world) {
|
||||
pl3xMap.getWorldIfEnabled(world.getUUID()).ifPresent(this::unregisterLayer);
|
||||
getBukkitWorldIdentifier(world).flatMap(squaremap::getWorldIfEnabled).ifPresent(this::unregisterLayer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeAllShapeMarkers() {
|
||||
pl3xMap.mapWorlds().forEach(this::unregisterLayer);
|
||||
squaremap.mapWorlds().forEach(this::unregisterLayer);
|
||||
}
|
||||
|
||||
private void unregisterLayer(MapWorld mapWorld) {
|
||||
Registry<LayerProvider> layerRegistry = mapWorld.layerRegistry();
|
||||
if (!layerRegistry.hasEntry(WORLDBORDER_KEY)) {
|
||||
LayerProvider defaultProvider = defaultProviders.get(mapWorld.uuid());
|
||||
LayerProvider defaultProvider = defaultProviders.get(mapWorld.identifier().asString());
|
||||
if (defaultProvider != null) {
|
||||
layerRegistry.register(WORLDBORDER_KEY, defaultProvider);
|
||||
}
|
||||
@@ -125,4 +128,12 @@ public class Pl3xMapIntegration extends AbstractMapIntegration {
|
||||
points[numPoints] = Point.of(center.x(), center.z() + radiusZ);
|
||||
return Marker.polyline(points);
|
||||
}
|
||||
|
||||
private Optional<WorldIdentifier> getBukkitWorldIdentifier(final World world) {
|
||||
org.bukkit.World bukkitWorld = Bukkit.getWorld(world.getUUID());
|
||||
if (bukkitWorld == null) {
|
||||
return Optional.empty();
|
||||
}
|
||||
return Optional.of(BukkitAdapter.worldIdentifier(bukkitWorld));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user