Skip to content

Commit f511f54

Browse files
committed
Initial CB1060 implementation
1 parent 72c8c9b commit f511f54

24 files changed

+1401
-64
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
## Forked to support Minecraft Beta 1.7.3's McRegion map format
22
Original project can be found [here](https://github.com/BlueMap-Minecraft/BlueMap)
33

4-
## Currently supported methods: CLI and Poseidon (Bukkit)
5-
Download Project Poseidon [here](https://github.com/RhysB/Project-Poseidon)
4+
## Currently supported methods: CLI and Bukkit (CB1060 and Poseidon)
5+
Make sure to use the `bukkit` build only if you're using original CB1060. If you're using [Project Poseidon](https://github.com/RhysB/Project-Poseidon), choose the `poseidon` build.
66

77
## To get the Beta look:
88

implementations/bukkit/build.gradle.kts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,6 @@ repositories {
2626
maven {
2727
setUrl("https://oss.sonatype.org/content/repositories/snapshots")
2828
}
29-
maven {
30-
setUrl("https://repository.johnymuffin.com/repository/maven-public")
31-
}
32-
maven {
33-
setUrl("https://repository.johnymuffin.com/repository/maven-snapshots")
34-
}
3529
}
3630

3731
dependencies {
@@ -41,8 +35,8 @@ dependencies {
4135
exclude( group = "com.google.code.gson", module = "gson" )
4236
}
4337

44-
shadow ("com.legacyminecraft.poseidon:poseidon-craftbukkit:1.1.8")
45-
implementation ("org.bstats:bstats-bukkit:2.2.1")
38+
shadow (fileTree("libs"))
39+
implementation ("com.google.code.gson:gson:2.11.0")
4640

4741
testImplementation ("org.junit.jupiter:junit-jupiter:5.8.2")
4842
testRuntimeOnly ("org.junit.jupiter:junit-jupiter-engine:5.8.2")
@@ -89,6 +83,7 @@ tasks.shadowJar {
8983
archiveFileName.set("BlueMap-${project.version}-${project.name}.jar")
9084

9185
//relocate ("com.flowpowered.math", "de.bluecolored.shadow.flowpowered.math") //DON"T relocate this, because the API depends on it
86+
relocate ("com.google.code.gson", "de.bluecolored.shadow.google.gson")
9287
relocate ("com.typesafe.config", "de.bluecolored.shadow.typesafe.config")
9388
relocate ("net.querz.nbt", "de.bluecolored.shadow.querz.nbt")
9489
relocate ("org.spongepowered.configurate", "de.bluecolored.shadow.configurate")
8.14 MB
Binary file not shown.

implementations/bukkit/src/main/java/de/bluecolored/bluemap/bukkit/BukkitCommandSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public BukkitCommandSource(Plugin plugin, CommandSender delegate) {
5151

5252
@Override
5353
public void sendMessage(Text text) {
54-
Bukkit.getScheduler().scheduleSyncDelayedTask(BukkitPlugin.getInstance(), () -> {
54+
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(BukkitPlugin.getInstance(), () -> {
5555
if (delegate instanceof Player) {
5656
Player player = (Player) delegate;
5757
player.sendMessage(ChatColor.GRAY + text.toPlainString());

implementations/bukkit/src/main/java/de/bluecolored/bluemap/bukkit/BukkitPlayer.java

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,15 @@
2929
import de.bluecolored.bluemap.common.serverinterface.Player;
3030
import de.bluecolored.bluemap.common.plugin.text.Text;
3131
import org.bukkit.Bukkit;
32-
import org.bukkit.GameMode;
3332
import org.bukkit.Location;
3433

3534
import java.io.IOException;
36-
import java.util.EnumMap;
37-
import java.util.Map;
3835
import java.util.UUID;
3936

4037
public class BukkitPlayer implements Player {
4138

42-
private static final Map<GameMode, Gamemode> GAMEMODE_MAP = new EnumMap<>(GameMode.class);
43-
static {
44-
GAMEMODE_MAP.put(GameMode.SURVIVAL, Gamemode.SURVIVAL);
45-
GAMEMODE_MAP.put(GameMode.CREATIVE, Gamemode.CREATIVE);
46-
}
47-
4839
private final UUID uuid;
40+
private final String playerName;
4941
private Text name;
5042
private String world;
5143
private Vector3d position;
@@ -58,8 +50,9 @@ public class BukkitPlayer implements Player {
5850
private boolean vanished;
5951
private Gamemode gamemode;
6052

61-
public BukkitPlayer(UUID playerUUID) {
62-
this.uuid = playerUUID;
53+
public BukkitPlayer(UUID uuid, String playerName) {
54+
this.uuid = uuid;
55+
this.playerName = playerName;
6356
update();
6457
}
6558

@@ -127,14 +120,13 @@ public Gamemode getGamemode() {
127120
* API access, only call on server thread!
128121
*/
129122
public void update() {
130-
org.bukkit.entity.Player player = Bukkit.getServer().getPlayer(uuid);
123+
org.bukkit.entity.Player player = Bukkit.getServer().getPlayer(this.playerName);
131124
if (player == null) {
132125
this.online = false;
133126
return;
134127
}
135128

136-
this.gamemode = GAMEMODE_MAP.get(GameMode.SURVIVAL);
137-
if (this.gamemode == null) this.gamemode = Gamemode.SURVIVAL;
129+
this.gamemode = Gamemode.SURVIVAL;
138130

139131
this.invisible = this.vanished = false; // TODO add support for vanish;
140132

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package de.bluecolored.bluemap.bukkit;
2+
3+
import org.bukkit.event.player.PlayerJoinEvent;
4+
import org.bukkit.event.player.PlayerListener;
5+
import org.bukkit.event.player.PlayerQuitEvent;
6+
7+
import java.util.UUID;
8+
9+
public class BukkitPlayerListener extends PlayerListener {
10+
11+
public void onPlayerJoin(PlayerJoinEvent evt) {
12+
BukkitPlayer player = new BukkitPlayer(evt.getPlayer().getUniqueId(), evt.getPlayer().getName());
13+
BukkitPlugin.getInstance().getOnlinePlayerMap().put(evt.getPlayer().getUniqueId(), player);
14+
BukkitPlugin.getInstance().getOnlinePlayerList().add(player);
15+
}
16+
17+
public void onPlayerLeave(PlayerQuitEvent evt) {
18+
UUID playerUUID = evt.getPlayer().getUniqueId();
19+
BukkitPlugin.getInstance().getOnlinePlayerMap().remove(playerUUID);
20+
synchronized (BukkitPlugin.getInstance().getOnlinePlayerList()) {
21+
BukkitPlugin.getInstance().getOnlinePlayerList().removeIf(p -> p.getUuid().equals(playerUUID));
22+
}
23+
}
24+
}

implementations/bukkit/src/main/java/de/bluecolored/bluemap/bukkit/BukkitPlugin.java

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,6 @@
4040
import org.bukkit.command.Command;
4141
import org.bukkit.command.CommandMap;
4242
import org.bukkit.event.Event;
43-
import org.bukkit.event.EventHandler;
44-
import org.bukkit.event.Listener;
45-
import org.bukkit.event.player.PlayerJoinEvent;
46-
import org.bukkit.event.player.PlayerQuitEvent;
4743
import org.bukkit.plugin.java.JavaPlugin;
4844

4945
import java.io.IOException;
@@ -52,7 +48,7 @@
5248
import java.util.*;
5349
import java.util.concurrent.ConcurrentHashMap;
5450

55-
public class BukkitPlugin extends JavaPlugin implements ServerInterface, Listener {
51+
public class BukkitPlugin extends JavaPlugin implements ServerInterface {
5652

5753
private static BukkitPlugin instance;
5854

@@ -100,8 +96,11 @@ public void onEnable() {
10096
}
10197

10298
//register events
103-
getServer().getPluginManager().registerEvents(this, this);
104-
getServer().getPluginManager().registerEvents(eventForwarder, this);
99+
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_JOIN, new BukkitPlayerListener(), Event.Priority.Monitor, this);
100+
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_QUIT, new BukkitPlayerListener(), Event.Priority.Monitor, this);
101+
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_JOIN, new EventForwarder(), Event.Priority.Monitor, this);
102+
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_QUIT, new EventForwarder(), Event.Priority.Monitor, this);
103+
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_CHAT, new EventForwarder(), Event.Priority.Monitor, this);
105104

106105
//register commands
107106
try {
@@ -117,14 +116,11 @@ public void onEnable() {
117116
Logger.global.logError("Failed to register commands!", e);
118117
}
119118

120-
//tab completions
121-
getServer().getPluginManager().registerEvents(commands, this);
122-
123119
//update online-player collections
124120
this.onlinePlayerList.clear();
125121
this.onlinePlayerMap.clear();
126122
for (org.bukkit.entity.Player player : getServer().getOnlinePlayers()) {
127-
BukkitPlayer bukkitPlayer = new BukkitPlayer(player.getUniqueId());
123+
BukkitPlayer bukkitPlayer = new BukkitPlayer(player.getUniqueId(), player.getName());
128124
onlinePlayerMap.put(player.getUniqueId(), bukkitPlayer);
129125
onlinePlayerList.add(bukkitPlayer);
130126
}
@@ -174,7 +170,7 @@ public void unregisterAllListeners() {
174170
@Override
175171
public Collection<ServerWorld> getLoadedWorlds() {
176172
Collection<ServerWorld> loadedWorlds = new ArrayList<>(3);
177-
for (World world : Bukkit.getWorlds()) {
173+
for (World world : Bukkit.getServer().getWorlds()) {
178174
loadedWorlds.add(worlds.get(world));
179175
}
180176
return loadedWorlds;
@@ -186,17 +182,17 @@ public Optional<ServerWorld> getWorld(Object world) {
186182
return getWorld((Path) world);
187183

188184
if (world instanceof String) {
189-
var serverWorld = Bukkit.getWorld((String) world);
185+
var serverWorld = Bukkit.getServer().getWorld((String) world);
190186
if (serverWorld != null) world = serverWorld;
191187
}
192188

193189
if (world instanceof String) {
194-
var serverWorld = Bukkit.getWorld(new Key((String) world).getValue());
190+
var serverWorld = Bukkit.getServer().getWorld(new Key((String) world).getValue());
195191
if (serverWorld != null) world = serverWorld;
196192
}
197193

198194
if (world instanceof UUID) {
199-
var serverWorld = Bukkit.getWorld((UUID) world);
195+
var serverWorld = Bukkit.getServer().getWorld((UUID) world);
200196
if (serverWorld != null) world = serverWorld;
201197
}
202198

@@ -228,25 +224,17 @@ public static BukkitPlugin getInstance() {
228224
return instance;
229225
}
230226

231-
@EventHandler(priority = Event.Priority.Monitor, ignoreCancelled = true)
232-
public void onPlayerJoin(PlayerJoinEvent evt) {
233-
BukkitPlayer player = new BukkitPlayer(evt.getPlayer().getUniqueId());
234-
onlinePlayerMap.put(evt.getPlayer().getUniqueId(), player);
235-
onlinePlayerList.add(player);
227+
@Override
228+
public Collection<Player> getOnlinePlayers() {
229+
return onlinePlayerMap.values();
236230
}
237231

238-
@EventHandler(priority = Event.Priority.Monitor, ignoreCancelled = true)
239-
public void onPlayerLeave(PlayerQuitEvent evt) {
240-
UUID playerUUID = evt.getPlayer().getUniqueId();
241-
onlinePlayerMap.remove(playerUUID);
242-
synchronized (onlinePlayerList) {
243-
onlinePlayerList.removeIf(p -> p.getUuid().equals(playerUUID));
244-
}
232+
public Collection<BukkitPlayer> getOnlinePlayerList() {
233+
return onlinePlayerList;
245234
}
246235

247-
@Override
248-
public Collection<Player> getOnlinePlayers() {
249-
return onlinePlayerMap.values();
236+
public Map<UUID, Player> getOnlinePlayerMap() {
237+
return onlinePlayerMap;
250238
}
251239

252240
@Override

implementations/bukkit/src/main/java/de/bluecolored/bluemap/bukkit/BukkitWorld.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public boolean persistWorldChanges() throws IOException {
9292
if (delegateWorld == null) return false;
9393

9494
try {
95-
return Bukkit.getScheduler().callSyncMethod(BukkitPlugin.getInstance(), () -> {
95+
return Bukkit.getServer().getScheduler().callSyncMethod(BukkitPlugin.getInstance(), () -> {
9696
delegateWorld.save();
9797
return true;
9898
}).get();

implementations/bukkit/src/main/java/de/bluecolored/bluemap/bukkit/EventForwarder.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,15 @@
2626

2727
import de.bluecolored.bluemap.common.serverinterface.ServerEventListener;
2828
import de.bluecolored.bluemap.common.plugin.text.Text;
29-
import org.bukkit.event.Event;
30-
import org.bukkit.event.EventHandler;
31-
import org.bukkit.event.Listener;
3229
import org.bukkit.event.player.PlayerChatEvent;
3330
import org.bukkit.event.player.PlayerJoinEvent;
31+
import org.bukkit.event.player.PlayerListener;
3432
import org.bukkit.event.player.PlayerQuitEvent;
3533

3634
import java.util.ArrayList;
3735
import java.util.Collection;
3836

39-
public class EventForwarder implements Listener {
37+
public class EventForwarder extends PlayerListener {
4038

4139
private final Collection<ServerEventListener> listeners;
4240

@@ -52,18 +50,19 @@ public synchronized void removeAllListeners() {
5250
listeners.clear();
5351
}
5452

55-
@EventHandler(priority = Event.Priority.Monitor, ignoreCancelled = true)
53+
@Override
5654
public synchronized void onPlayerJoin(PlayerJoinEvent evt) {
5755
for (ServerEventListener listener : listeners) listener.onPlayerJoin(evt.getPlayer().getUniqueId());
5856
}
5957

60-
@EventHandler(priority = Event.Priority.Monitor, ignoreCancelled = true)
61-
public synchronized void onPlayerLeave(PlayerQuitEvent evt) {
58+
@Override
59+
public synchronized void onPlayerQuit(PlayerQuitEvent evt) {
6260
for (ServerEventListener listener : listeners) listener.onPlayerJoin(evt.getPlayer().getUniqueId());
6361
}
6462

65-
@EventHandler(priority = Event.Priority.Monitor, ignoreCancelled = true)
63+
@Override
6664
public synchronized void onPlayerChat(PlayerChatEvent evt) {
65+
if (evt.isCancelled()) return;
6766
String message = String.format(evt.getFormat(), evt.getPlayer().getDisplayName(), evt.getMessage());
6867
for (ServerEventListener listener : listeners) listener.onChatMessage(Text.of(message));
6968
}

0 commit comments

Comments
 (0)