mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-10-19 02:46:49 +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>
|
<id>papermc</id>
|
||||||
<url>https://repo.papermc.io/repository/maven-public/</url>
|
<url>https://repo.papermc.io/repository/maven-public/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>jitpack.io</id>
|
||||||
|
<url>https://jitpack.io</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -76,5 +80,11 @@
|
|||||||
<artifactId>postgresql</artifactId>
|
<artifactId>postgresql</artifactId>
|
||||||
<version>42.6.0</version>
|
<version>42.6.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.BlueMap-Minecraft</groupId>
|
||||||
|
<artifactId>BlueMapAPI</artifactId>
|
||||||
|
<version>v2.6.2</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</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);
|
world_dominions.get(d.getWorld()).add(d);
|
||||||
}
|
}
|
||||||
|
BlueMapConnect.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -155,6 +156,10 @@ public class Cache {
|
|||||||
z >= dominion.getZ1() && z <= dominion.getZ2();
|
z >= dominion.getZ1() && z <= dominion.getZ2();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, List<DominionDTO>> getWorldDominions() {
|
||||||
|
return world_dominions;
|
||||||
|
}
|
||||||
|
|
||||||
public static Cache instance;
|
public static Cache instance;
|
||||||
private Map<String, List<DominionDTO>> world_dominions; // 所有领地
|
private Map<String, List<DominionDTO>> world_dominions; // 所有领地
|
||||||
private Map<UUID, Map<Integer, PlayerPrivilegeDTO>> player_uuid_to_privilege; // 玩家所有的特权
|
private Map<UUID, Map<Integer, PlayerPrivilegeDTO>> player_uuid_to_privilege; // 玩家所有的特权
|
||||||
|
@ -24,6 +24,7 @@ public class ConfigManager {
|
|||||||
_max_x = _file.getInt("MaxX", 128);
|
_max_x = _file.getInt("MaxX", 128);
|
||||||
_max_y = _file.getInt("MaxY", 64);
|
_max_y = _file.getInt("MaxY", 64);
|
||||||
_max_z = _file.getInt("MaxZ", 128);
|
_max_z = _file.getInt("MaxZ", 128);
|
||||||
|
_blue_map = _file.getBoolean("BlueMap", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean isDebug() {
|
public Boolean isDebug() {
|
||||||
@ -107,6 +108,16 @@ public class ConfigManager {
|
|||||||
_plugin.saveConfig();
|
_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 final Dominion _plugin;
|
||||||
private FileConfiguration _file;
|
private FileConfiguration _file;
|
||||||
@ -123,4 +134,6 @@ public class ConfigManager {
|
|||||||
private Integer _max_x;
|
private Integer _max_x;
|
||||||
private Integer _max_y;
|
private Integer _max_y;
|
||||||
private Integer _max_z;
|
private Integer _max_z;
|
||||||
|
|
||||||
|
private Boolean _blue_map;
|
||||||
}
|
}
|
||||||
|
@ -10,4 +10,6 @@ MaxX: 128
|
|||||||
MaxY: 64
|
MaxY: 64
|
||||||
MaxZ: 128
|
MaxZ: 128
|
||||||
|
|
||||||
|
BlueMap: true
|
||||||
|
|
||||||
Debug: false
|
Debug: false
|
Loading…
Reference in New Issue
Block a user