Skip to content

Commit c548b31

Browse files
2 parents 9f1300b + c8944f4 commit c548b31

File tree

8 files changed

+155
-7
lines changed

8 files changed

+155
-7
lines changed

pom.xml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<version.allay>0.1.2</version.allay>
1717
<version.waterdogpe>2.0.3-SNAPSHOT</version.waterdogpe>
1818
<version.powernukkitx>master-SNAPSHOT</version.powernukkitx>
19+
<version.nukkit>1.0-SNAPSHOT</version.nukkit>
1920
</properties>
2021

2122
<repositories>
@@ -57,7 +58,7 @@
5758
<groupId>com.github.PowerNukkitX</groupId>
5859
<artifactId>PowerNukkitX</artifactId>
5960
<version>${version.powernukkitx}</version>
60-
<scope>compile</scope>
61+
<scope>provided</scope>
6162
<exclusions>
6263
<exclusion>
6364
<groupId>org.cloudburstmc.netty</groupId>
@@ -74,29 +75,38 @@
7475
<groupId>dev.waterdog.waterdogpe</groupId>
7576
<artifactId>waterdog</artifactId>
7677
<version>${version.waterdogpe}</version>
77-
<scope>compile</scope>
78+
<scope>provided</scope>
7879
</dependency>
7980

8081
<dependency>
8182
<groupId>com.github.AllayMC.Allay</groupId>
8283
<artifactId>api</artifactId>
8384
<version>${version.allay}</version>
85+
<scope>provided</scope>
86+
</dependency>
87+
88+
<dependency>
89+
<groupId>cn.nukkit</groupId>
90+
<artifactId>nukkit</artifactId>
91+
<version>${version.nukkit}</version>
92+
<scope>provided</scope>
8493
</dependency>
8594

86-
<!--<dependency>
95+
<dependency>
8796
<groupId>com.github.RedstoneCloud.RedstoneCloud</groupId>
8897
<artifactId>api</artifactId>
8998
<version>main-SNAPSHOT</version>
9099
<scope>compile</scope>
91100
</dependency>
92-
-->
93101

102+
<!--
94103
<dependency>
95104
<groupId>de.redstonecloud</groupId>
96105
<artifactId>api</artifactId>
97106
<version>0.1-beta</version>
98107
<scope>compile</scope>
99108
</dependency>
109+
-->
100110
</dependencies>
101111

102112
<build>
@@ -122,4 +132,4 @@
122132
</plugin>
123133
</plugins>
124134
</build>
125-
</project>
135+
</project>

src/main/java/de/redstonecloud/bridge/cloudinterface/components/BridgePlayer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public static BridgePlayer readFromCache(String uuid) {
3333
.address(HostAndPort.fromString(json.get("address").getAsString()))
3434
.network(BridgeServer.readFromCache(json.get("network").getAsString()))
3535
.server(BridgeServer.readFromCache(json.get("server").getAsString()))
36-
.customData(new JsonParser().parse(json.get("customData").getAsString()))
36+
.customData(JsonParser.parseString(json.get("customData").getAsString()))
3737
.build();
3838

3939
return server;
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package de.redstonecloud.bridge.platform.nukkit;
2+
3+
import cn.nukkit.Player;
4+
import cn.nukkit.Server;
5+
import cn.nukkit.scheduler.Task;
6+
import com.google.common.net.HostAndPort;
7+
import de.redstonecloud.api.components.ICloudPlayer;
8+
import de.redstonecloud.bridge.cloudinterface.components.BridgeExecutor;
9+
import de.redstonecloud.bridge.cloudinterface.components.BridgeServer;
10+
11+
import java.util.Objects;
12+
import java.util.UUID;
13+
14+
public class NukkitExecutor implements BridgeExecutor {
15+
private static Server server = Server.getInstance();
16+
17+
public Player getPlayerByCloudPlayer(ICloudPlayer player) {
18+
return server.getPlayer(UUID.fromString(player.getUUID())).get();
19+
}
20+
21+
public void sendMessage(ICloudPlayer cloudPlayer, String message) {
22+
Objects.requireNonNull(getPlayerByCloudPlayer(cloudPlayer)).sendMessage(message);
23+
}
24+
25+
@Override
26+
public void sendTitle(ICloudPlayer cloudPlayer, String title) {
27+
getPlayerByCloudPlayer(cloudPlayer).sendTitle(title);
28+
}
29+
30+
@Override
31+
public void kick(ICloudPlayer player) {
32+
Objects.requireNonNull(getPlayerByCloudPlayer(player)).kick();
33+
}
34+
35+
@Override
36+
public void kick(ICloudPlayer player, String reason) {
37+
Objects.requireNonNull(getPlayerByCloudPlayer(player)).kick(reason, false);
38+
}
39+
40+
@Override
41+
public void sendActionbar(ICloudPlayer player, String message) {
42+
getPlayerByCloudPlayer(player).sendActionBar(message);
43+
}
44+
45+
@Override
46+
public void sendToast(ICloudPlayer player, String title, String message) {
47+
getPlayerByCloudPlayer(player).sendToast(title, message);
48+
}
49+
50+
@Override
51+
public void runDelayed(Runnable code, int tickDelay) {
52+
server.getScheduler().scheduleDelayedTask(new Task() {
53+
@Override
54+
public void onRun(int i) {
55+
code.run();
56+
}
57+
}, tickDelay);
58+
}
59+
60+
61+
62+
public void addServer(String name, HostAndPort address) {}
63+
64+
public void removeServer(String name) {}
65+
66+
public boolean hasServer(String name) {
67+
return false;
68+
}
69+
70+
public BridgeServer determineServer(String serverName) {
71+
return null;
72+
}
73+
74+
public void connect(ICloudPlayer player, String name) {}
75+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package de.redstonecloud.bridge.platform.nukkit;
2+
3+
import cn.nukkit.Player;
4+
import cn.nukkit.event.EventHandler;
5+
import cn.nukkit.event.Listener;
6+
import cn.nukkit.event.player.PlayerLoginEvent;
7+
import cn.nukkit.event.player.PlayerQuitEvent;
8+
import de.redstonecloud.bridge.cloudinterface.CloudInterface;
9+
10+
public class NukkitListener implements Listener {
11+
@EventHandler
12+
public void onLogin(PlayerLoginEvent ev) {
13+
Player player = ev.getPlayer();
14+
15+
CloudInterface.getInstance().playerLogin(player.getName(), player.getUniqueId().toString(), player.getAddress());
16+
}
17+
18+
@EventHandler
19+
public void onDisconnect(PlayerQuitEvent ev) {
20+
Player player = ev.getPlayer();
21+
22+
CloudInterface.getInstance().playerDisconnect(player.getUniqueId().toString());
23+
}
24+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package de.redstonecloud.bridge.platform.nukkit;
2+
3+
import cn.nukkit.plugin.PluginBase;
4+
import de.redstonecloud.bridge.cloudinterface.CloudInterface;
5+
6+
public class NukkitPlugin extends PluginBase {
7+
public CloudInterface cloudInterface;
8+
9+
@Override
10+
public void onLoad() {
11+
cloudInterface = CloudInterface.getInstance();
12+
}
13+
14+
@Override
15+
public void onEnable() {
16+
cloudInterface.start(new NukkitExecutor());
17+
this.getServer().getPluginManager().registerEvents(new NukkitListener(), this);
18+
}
19+
20+
@Override
21+
public void onDisable() {
22+
cloudInterface.shutdown();
23+
}
24+
}

src/main/java/de/redstonecloud/bridge/platform/waterdogpe/WDPEHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public static ServerInfo fetchServer() {
6060
.send(BestTemplateResultPacket.class, response -> name.complete(response.getServer()));
6161

6262
try {
63-
BridgeServer srv = CloudInterface.getExecutor().determineServer(name.completeOnTimeout("", 1, TimeUnit.SECONDS).get().toUpperCase());
63+
BridgeServer srv = CloudInterface.getExecutor().determineServer(name.completeOnTimeout("", 3, TimeUnit.SECONDS).get().toUpperCase());
6464
return ProxyServer.getInstance().getServerInfo(srv.getName());
6565
} catch (Exception e) {
6666
return null;

src/main/resources/nukkit.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: CloudBridge
2+
main: de.redstonecloud.bridge.platform.nukkit.NukkitPlugin
3+
load: STARTUP
4+
version: 1.0
5+
api: 1.0.0
6+
7+
description: CloudBridge for RedstoneCloud
8+
author: RedstoneCloud
9+
website: https://github.com/RedstoneCloud

src/main/resources/plugin.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"entrance": "de.redstonecloud.bridge.platform.allay.AllayPlugin",
3+
"name": "CloudBridge",
4+
"authors": ["RedstoneCloud"],
5+
"version": "1.0"
6+
}

0 commit comments

Comments
 (0)