mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-10-18 23:16:42 +08:00
添加了blue map渲染支持
This commit is contained in:
parent
52e87c6e79
commit
517426304a
10
pom.xml
10
pom.xml
@ -62,6 +62,10 @@
|
||||
<id>papermc</id>
|
||||
<url>https://repo.papermc.io/repository/maven-public/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
@ -76,5 +80,11 @@
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>42.6.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.BlueMap-Minecraft</groupId>
|
||||
<artifactId>BlueMapAPI</artifactId>
|
||||
<version>v2.6.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
64
src/main/java/cn/lunadeer/dominion/BlueMapConnect.java
Normal file
64
src/main/java/cn/lunadeer/dominion/BlueMapConnect.java
Normal file
@ -0,0 +1,64 @@
|
||||
package cn.lunadeer.dominion;
|
||||
|
||||
import cn.lunadeer.dominion.dtos.DominionDTO;
|
||||
import com.flowpowered.math.vector.Vector2d;
|
||||
import de.bluecolored.bluemap.api.BlueMapAPI;
|
||||
import de.bluecolored.bluemap.api.BlueMapMap;
|
||||
import de.bluecolored.bluemap.api.markers.ExtrudeMarker;
|
||||
import de.bluecolored.bluemap.api.markers.MarkerSet;
|
||||
import de.bluecolored.bluemap.api.math.Color;
|
||||
import de.bluecolored.bluemap.api.math.Shape;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class BlueMapConnect {
|
||||
public static void render() {
|
||||
if (!Dominion.config.getBlueMap()) {
|
||||
return;
|
||||
}
|
||||
BlueMapAPI.getInstance().ifPresent(api -> {
|
||||
for (Map.Entry<String, List<DominionDTO>> world_dominions : Cache.instance.getWorldDominions().entrySet()) {
|
||||
api.getWorld(world_dominions.getKey()).ifPresent(world -> {
|
||||
MarkerSet markerSet = MarkerSet.builder()
|
||||
.label("Dominion")
|
||||
.build();
|
||||
|
||||
for (DominionDTO dominion : world_dominions.getValue()) {
|
||||
Collection<Vector2d> vectors = new ArrayList<>();
|
||||
vectors.add(new Vector2d(dominion.getX1(), dominion.getZ1()));
|
||||
vectors.add(new Vector2d(dominion.getX2(), dominion.getZ1()));
|
||||
vectors.add(new Vector2d(dominion.getX2(), dominion.getZ2()));
|
||||
vectors.add(new Vector2d(dominion.getX1(), dominion.getZ2()));
|
||||
Shape shape = new Shape(vectors);
|
||||
double x = vectors.iterator().next().getX();
|
||||
double z = vectors.iterator().next().getY();
|
||||
double y = dominion.getY1();
|
||||
|
||||
Color line = new Color(0, 191, 255, 0.8F);
|
||||
Color fill = new Color(0, 191, 255, 0.2F);
|
||||
if (dominion.getParentDomId() != -1) { // for children dominion
|
||||
line = new Color(240, 230, 140, 0.8F);
|
||||
fill = new Color(240, 230, 140, 0.2F);
|
||||
}
|
||||
ExtrudeMarker marker = ExtrudeMarker.builder()
|
||||
.label(dominion.getName())
|
||||
.position(x, y, z)
|
||||
.shape(shape, dominion.getY1(), dominion.getY2())
|
||||
.lineColor(line)
|
||||
.fillColor(fill)
|
||||
.build();
|
||||
markerSet.getMarkers()
|
||||
.put(dominion.getName(), marker);
|
||||
}
|
||||
|
||||
for (BlueMapMap map : world.getMaps()) {
|
||||
map.getMarkerSets().put(world_dominions.getKey() + "-" + markerSet.getLabel(), markerSet);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -30,6 +30,7 @@ public class Cache {
|
||||
}
|
||||
world_dominions.get(d.getWorld()).add(d);
|
||||
}
|
||||
BlueMapConnect.render();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -155,6 +156,10 @@ public class Cache {
|
||||
z >= dominion.getZ1() && z <= dominion.getZ2();
|
||||
}
|
||||
|
||||
public Map<String, List<DominionDTO>> getWorldDominions() {
|
||||
return world_dominions;
|
||||
}
|
||||
|
||||
public static Cache instance;
|
||||
private Map<String, List<DominionDTO>> world_dominions; // 所有领地
|
||||
private Map<UUID, Map<Integer, PlayerPrivilegeDTO>> player_uuid_to_privilege; // 玩家所有的特权
|
||||
|
@ -24,6 +24,7 @@ public class ConfigManager {
|
||||
_max_x = _file.getInt("MaxX", 128);
|
||||
_max_y = _file.getInt("MaxY", 64);
|
||||
_max_z = _file.getInt("MaxZ", 128);
|
||||
_blue_map = _file.getBoolean("BlueMap", true);
|
||||
}
|
||||
|
||||
public Boolean isDebug() {
|
||||
@ -107,6 +108,16 @@ public class ConfigManager {
|
||||
_plugin.saveConfig();
|
||||
}
|
||||
|
||||
public Boolean getBlueMap() {
|
||||
return _blue_map;
|
||||
}
|
||||
|
||||
public void setBlueMap(Boolean blue_map) {
|
||||
_blue_map = blue_map;
|
||||
_file.set("BlueMap", blue_map);
|
||||
_plugin.saveConfig();
|
||||
}
|
||||
|
||||
|
||||
private final Dominion _plugin;
|
||||
private FileConfiguration _file;
|
||||
@ -123,4 +134,6 @@ public class ConfigManager {
|
||||
private Integer _max_x;
|
||||
private Integer _max_y;
|
||||
private Integer _max_z;
|
||||
|
||||
private Boolean _blue_map;
|
||||
}
|
||||
|
@ -10,4 +10,6 @@ MaxX: 128
|
||||
MaxY: 64
|
||||
MaxZ: 128
|
||||
|
||||
BlueMap: true
|
||||
|
||||
Debug: false
|
Loading…
Reference in New Issue
Block a user