currently refactoring a lot
This commit is contained in:
parent
31eb8a92eb
commit
ea6ae529cc
32 changed files with 205 additions and 185 deletions
|
|
@ -18,10 +18,17 @@ repositories {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("io.papermc.paper:paper-api:1.21.11-rc3-R0.1-SNAPSHOT")
|
||||
implementation(project(":core-bukkit-api"))
|
||||
|
||||
// https://mvnrepository.com/artifact/org.mongodb/bson
|
||||
implementation("org.mongodb:bson:5.8.0")
|
||||
// https://mvnrepository.com/artifact/io.nats/jnats
|
||||
implementation("io.nats:jnats:2.25.2")
|
||||
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
||||
implementation("de.kentoj.scrow:kencommandapi-core:0.23")
|
||||
implementation("de.kentoj.scrow:kencommandapi-core:0.28")
|
||||
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-bukkit
|
||||
implementation("de.kentoj.scrow:kencommandapi-bukkit:0.28")
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
|
@ -37,9 +44,7 @@ tasks {
|
|||
tasks.processResources {
|
||||
filesMatching("plugin.yml") {
|
||||
expand(
|
||||
mapOf(
|
||||
"version" to project.version.toString()
|
||||
)
|
||||
mapOf("version" to project.version.toString())
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import de.kentoj.scrow.bukkit.server.LobbyCommand;
|
|||
import de.kentoj.scrow.bukkit.server.PlayCommand;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.channels.FileChannel;
|
||||
|
|
@ -34,12 +35,12 @@ public class CoreImplPlugin extends JavaPlugin {
|
|||
|
||||
new RegionTask(new RegionPlayerTracker()).runTaskTimer(this, 10, 10);
|
||||
|
||||
registerServer();
|
||||
// TODO/FIXME
|
||||
//registerServer();
|
||||
}
|
||||
|
||||
private void registerServer() {
|
||||
var opts = new OpenOption[]{StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE, StandardOpenOption.WRITE};
|
||||
try (var file = FileChannel.open(Path.of("/proc/self/fd/3"), opts)) {
|
||||
try (var file = FileChannel.open(Path.of("/proc/self/fd/4"), StandardOpenOption.WRITE)) {
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
file.write(ByteBuffer.wrap(new byte[]{'\n'}));
|
||||
} catch (IOException e) {
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@ import de.kentoj.scrow.bukkit.friends.friendship.InMemoryFriendshipService;
|
|||
import de.kentoj.scrow.bukkit.friends.friendship.PostgresFriendshipService;
|
||||
import de.kentoj.scrow.bukkit.friends.request.InMemoryFriendRequestService;
|
||||
import de.kentoj.scrow.bukkit.friends.request.PostgresFriendRequestService;
|
||||
import de.kentoj.scrow.bukkit.playermanager.PlayerManagerImpl;
|
||||
import de.kentoj.scrow.bukkit.region.RegionManagerImpl;
|
||||
import de.kentoj.scrowlib.instancemanager.InstanceManagerImpl;
|
||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||
import de.kentoj.scrowlib.utils.EnvUtils;
|
||||
import io.nats.client.Nats;
|
||||
import io.nats.client.Options;
|
||||
|
|
@ -31,7 +33,7 @@ public class ScrowAPISurface {
|
|||
.server(natsHost)
|
||||
.pedantic()
|
||||
.build();
|
||||
ScrowAPI.setNats(Nats.connect(options));
|
||||
ScrowAPI.setMessageBroker(new MessageBroker(Nats.connect(options)));
|
||||
} catch (IOException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
@ -40,9 +42,10 @@ public class ScrowAPISurface {
|
|||
ScrowAPI.setJdbi(Jdbi.create(EnvUtils.envOrThrow("HOST_POSTGRES")));
|
||||
}
|
||||
|
||||
ScrowAPI.setPlayerManager(new PlayerManagerImpl());
|
||||
ScrowAPI.setRegionManager(new RegionManagerImpl());
|
||||
ScrowAPI.setCommandApi(new CommandAPI(plugin));
|
||||
ScrowAPI.setInstanceManager(new InstanceManagerImpl(ScrowAPI.getNats()));
|
||||
ScrowAPI.setInstanceManager(new InstanceManagerImpl(ScrowAPI.getMessageBroker()));
|
||||
ScrowAPI.setEconomyService(ScrowAPI.getJdbi() != null ?
|
||||
new PostgresEconomyService() : new InMemoryEconomyService());
|
||||
ScrowAPI.setFriendRequestService(ScrowAPI.getJdbi() != null ?
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import de.kentoj.scrowlib.convention.ScrowMessageStyle;
|
|||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
@ -29,6 +28,7 @@ public class CoinsCommand implements CommandExecutor<CommandSender> {
|
|||
style = ScrowMessageStyle.GENERIC;
|
||||
rootNode = CommandNode.rootNode(style, "coins", "bal", "balance");
|
||||
rootNode.setPermission("command.coins.get.self");
|
||||
rootNode.setExecutor(this);
|
||||
|
||||
var setLiteral = new CoinsSetLiteral(style).getLiteral();
|
||||
setLiteral.setPermission("command.coins.set");
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class CoinsGetLiteral implements CommandExecutor<CommandSender> {
|
|||
playerArg = CommandArgument.arg("player", OfflinePlayerArgumentType.getInstance());
|
||||
playerArg.setDefaultValueProvider(sender -> (OfflinePlayer) sender);
|
||||
|
||||
literal = CommandNode.node("set");
|
||||
literal = CommandNode.node("get");
|
||||
literal.addArgument(playerArg);
|
||||
literal.setExecutor(this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,9 +74,9 @@ public class FriendAddLiteral implements CommandExecutor<CommandSender> {
|
|||
.saveFriendship(new FriendshipImpl(self.getUniqueId(), other.getUniqueId(), Instant.now()))
|
||||
)))
|
||||
.runSync(() -> {
|
||||
self.sendMessage(style.ok("You are now friends with " + other.getName()));
|
||||
self.sendMessage(style.ok("You are now friends with " + other.getName() + "."));
|
||||
if (other.getPlayer() != null)
|
||||
other.getPlayer().sendMessage(style.ok("You are now friends with " + self.getName()));
|
||||
other.getPlayer().sendMessage(style.ok("You are now friends with " + self.getName() + "."));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public class FriendRemoveLiteral implements CommandExecutor<CommandSender> {
|
|||
ScrowAPI.getFriendshipService().deleteFriendship(friend.getUniqueId(), player.getUniqueId()))
|
||||
.<Result<Object, String>>mapSync(deleted -> {
|
||||
if (!deleted)
|
||||
return Results.failure("You are not friends with " + friend.getName());
|
||||
ctx.getSender().sendMessage(style.ok("You have ended the friendship with " + friend.getName()));
|
||||
return Results.failure("You are not friends with " + friend.getName() + ".");
|
||||
ctx.getSender().sendMessage(style.ok("You have ended the friendship with " + friend.getName() + "."));
|
||||
return Results.success(new Object());
|
||||
}).toFuture();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class FriendRequestsLiteral implements CommandExecutor<CommandSender> {
|
|||
|
||||
public FriendRequestsLiteral(ScrowMessageStyle style) {
|
||||
this.style = style;
|
||||
literal = CommandNode.node("requests", "list-requests");
|
||||
literal = CommandNode.node("requests");
|
||||
literal.setExecutor(this);
|
||||
}
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ public class FriendRequestsLiteral implements CommandExecutor<CommandSender> {
|
|||
return Tasks.supplyAsync(() ->
|
||||
ScrowAPI.getFriendRequestService().getFriendRequestsTo(sender.getUniqueId()))
|
||||
.<Result<Object, String>>mapAsync(list -> {
|
||||
if (list.isEmpty()) return Results.failure("You have no friend requests");
|
||||
if (list.isEmpty()) return Results.failure("You have no friend requests.");
|
||||
var requesters = list.stream().sorted(this::compareByAge).map(fr -> Bukkit.getOfflinePlayer(fr.getFrom()).getName());
|
||||
|
||||
sender.sendMessage(formatList(requesters.toList()));
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@ public class InstanceDeployLiteral implements CommandExecutor<CommandSender> {
|
|||
@Override
|
||||
public CompletableFuture<Result<Object, String>> execute(CommandContext<CommandSender> ctx) {
|
||||
var template = ctx.getArg(templateArg);
|
||||
ctx.getSender().sendMessage(style.ok("Deploying instance... this may take a while"));
|
||||
ctx.getSender().sendMessage(style.ok("Deploying instance... this may take a while."));
|
||||
return Tasks.supplyAsync(() ->
|
||||
ScrowAPI.getInstanceManager().deployInstance(template))
|
||||
.<Result<Object, String>>mapSync(instance -> {
|
||||
ctx.getSender().sendMessage(style.ok("Deployed instance of " + template + " with handle " + instance.getHandle()));
|
||||
ctx.getSender().sendMessage(style.ok("Deployed instance of " + template + " with handle " + instance.getHandle() + "."));
|
||||
// FIXME handle unknown server
|
||||
return Results.success(new Object());
|
||||
}).toFuture();
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ public class InstanceDestroyLiteral implements CommandExecutor<CommandSender> {
|
|||
return Tasks.supplyAsync(() -> ScrowAPI.getInstanceManager().destroyInstance(handle))
|
||||
.<Result<Object, String>>mapSync(found -> {
|
||||
if (!found)
|
||||
return Results.failure("No instance with that handle found");
|
||||
ctx.getSender().sendMessage(style.ok("Destroyed server with handle " + handle));
|
||||
return Results.failure("No instance with that handle found.");
|
||||
ctx.getSender().sendMessage(style.ok("Destroyed server with handle " + handle + "."));
|
||||
return Results.success(new Object());
|
||||
}).toFuture();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package de.kentoj.scrow.bukkit.playermanager;
|
||||
|
||||
import de.kentoj.scrow.bukkit.ScrowAPI;
|
||||
import de.kentoj.scrow.bukkit.misc.PlayerManager;
|
||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||
import de.kentoj.scrowlib.utils.ResultUtils;
|
||||
|
|
@ -11,7 +12,7 @@ import java.util.UUID;
|
|||
@RequiredArgsConstructor
|
||||
public class PlayerManagerImpl implements PlayerManager {
|
||||
|
||||
private final MessageBroker messageBroker;
|
||||
private final MessageBroker messageBroker = ScrowAPI.getMessageBroker();
|
||||
|
||||
@Override
|
||||
public void sendPlayer(UUID playerId, String instanceHandle) {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class PlayCommand implements CommandExecutor<CommandSender> {
|
|||
.findFirst()
|
||||
.orElse(null);
|
||||
if (instance == null)
|
||||
return Results.failure("No instance for " + gamemode + " found");
|
||||
return Results.failure("No instance for " + gamemode + " found.");
|
||||
|
||||
return Results.ofCallable(() -> {
|
||||
ScrowAPI.getPlayerManager().sendPlayer(player.getUniqueId(), instance.getHandle());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue