Add Squaremap Integration (#156)

This commit is contained in:
Dylan Xaldin authored and GitHub committed 2021-12-20 21:03:17 -08:00
1 parent fdc69bab13
commit 10a508495b
5 files changed
+42 -26

No files matched your search

+5
View File
@@ -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
View File
@@ -1,4 +1,5 @@
repositories {
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
maven("https://papermc.io/repo/repository/maven-public")
}
+1 -1
View File
@@ -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}
+2 -3
View File
@@ -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")
@@ -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));
}
}