gradle time
This commit is contained in:
parent
7040a6ce1e
commit
9421ef511e
47 changed files with 482 additions and 226 deletions
|
|
@ -23,9 +23,6 @@ dependencies {
|
|||
// https://docs.papermc.io/velocity/dev/creating-your-first-plugin/
|
||||
annotationProcessor("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
|
||||
|
||||
// https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine
|
||||
implementation("com.github.ben-manes.caffeine:caffeine:3.2.4")
|
||||
|
||||
// https://mvnrepository.com/artifact/org.postgresql/postgresql
|
||||
implementation("org.postgresql:postgresql:42.7.12")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,12 +4,13 @@ import com.google.inject.Inject;
|
|||
import com.velocitypowered.api.plugin.Plugin;
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
import de.kentoj.scrow.corevelocity.command.OnlineCommand;
|
||||
import de.kentoj.scrow.corevelocity.network.FriendNotifications;
|
||||
import de.kentoj.scrow.corevelocity.privmsg.LastTargetCache;
|
||||
import de.kentoj.scrow.corevelocity.privmsg.MsgCommand;
|
||||
import de.kentoj.scrow.corevelocity.privmsg.PrivMsgHandler;
|
||||
import de.kentoj.scrow.corevelocity.privmsg.ReplyCommand;
|
||||
import de.kentoj.scrow.corevelocity.server.SendPlayerWatchdog;
|
||||
import de.kentoj.scrow.corevelocity.server.ServerRegisterWatchdog;
|
||||
import de.kentoj.scrow.corevelocity.network.SendPlayerWatchdog;
|
||||
import de.kentoj.scrow.corevelocity.network.ServerRegisterWatchdog;
|
||||
import de.kentoj.scrow.generated.BuildInfo;
|
||||
import de.kentoj.scrow.velocity.ScrowAPI;
|
||||
import de.kentoj.scrowlib.convention.ScrowMessageStyle;
|
||||
|
|
@ -37,9 +38,10 @@ public class CoreVelocityPlugin {
|
|||
cmds.register(new OnlineCommand(server).getRootNode());
|
||||
}
|
||||
|
||||
var registerWatchdog = new ServerRegisterWatchdog(ScrowAPI.getMessageBroker(), server);
|
||||
var sendPlayerWatchdog = new SendPlayerWatchdog(ScrowAPI.getMessageBroker(), server);
|
||||
var registerWatchdog = new ServerRegisterWatchdog(server);
|
||||
var sendPlayerWatchdog = new SendPlayerWatchdog(server);
|
||||
registerWatchdog.listen();
|
||||
sendPlayerWatchdog.listen();
|
||||
server.getEventManager().register(this, new FriendNotifications());
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import de.kentoj.kencommandapi.CommandAPI;
|
|||
import de.kentoj.scrow.velocity.ScrowAPI;
|
||||
import de.kentoj.scrowlib.instancemanager.InstanceManagerImpl;
|
||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||
import de.kentoj.scrowlib.player.NetworkPlayerImpl;
|
||||
import de.kentoj.scrowlib.utils.EnvUtils;
|
||||
import io.nats.client.Nats;
|
||||
import io.nats.client.Options;
|
||||
|
|
@ -42,8 +43,8 @@ public class ScrowAPISurface {
|
|||
}
|
||||
|
||||
ScrowAPI.setInstanceManager(new InstanceManagerImpl(ScrowAPI.getMessageBroker()));
|
||||
|
||||
ScrowAPI.setCommandApi(new CommandAPI(server));
|
||||
ScrowAPI.setPlayerFactory(playerId -> new NetworkPlayerImpl(ScrowAPI.getMessageBroker(), playerId));
|
||||
}
|
||||
|
||||
public static void destroyScrowAPI() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
package de.kentoj.scrow.corevelocity.network;
|
||||
|
||||
import com.velocitypowered.api.event.Subscribe;
|
||||
import com.velocitypowered.api.event.connection.DisconnectEvent;
|
||||
import com.velocitypowered.api.event.connection.PostLoginEvent;
|
||||
import de.kentoj.scrow.velocity.ScrowAPI;
|
||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||
import org.bson.Document;
|
||||
|
||||
public class FriendNotifications {
|
||||
|
||||
private final MessageBroker messageBroker = ScrowAPI.getMessageBroker();
|
||||
|
||||
@Subscribe
|
||||
private void onConnect(PostLoginEvent ev) {
|
||||
messageBroker.publish("event.player.connect", new Document("playerId", ev.getPlayer().getUniqueId()));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onDisconnect(DisconnectEvent ev) {
|
||||
messageBroker.publish("event.player.disconnect", new Document("playerId", ev.getPlayer().getUniqueId()));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package de.kentoj.scrow.corevelocity.server;
|
||||
package de.kentoj.scrow.corevelocity.network;
|
||||
|
||||
import com.leakyabstractions.result.api.Result;
|
||||
import com.leakyabstractions.result.core.Results;
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
import de.kentoj.scrow.velocity.ScrowAPI;
|
||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||
import io.nats.client.Connection;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.bson.Document;
|
||||
|
|
@ -18,11 +18,11 @@ import java.util.concurrent.ExecutionException;
|
|||
@RequiredArgsConstructor
|
||||
public class SendPlayerWatchdog {
|
||||
|
||||
private final MessageBroker natsRepo;
|
||||
private final MessageBroker messageBroker = ScrowAPI.getMessageBroker();
|
||||
private final ProxyServer server;
|
||||
|
||||
public void listen() {
|
||||
natsRepo.handle("players.send", doc -> sendPlayer(
|
||||
messageBroker.handle("player.send", doc -> sendPlayer(
|
||||
doc.get("playerId", UUID.class),
|
||||
doc.getString("handle")
|
||||
));
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package de.kentoj.scrow.corevelocity.server;
|
||||
package de.kentoj.scrow.corevelocity.network;
|
||||
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
import com.velocitypowered.api.proxy.server.ServerInfo;
|
||||
import de.kentoj.scrow.velocity.ScrowAPI;
|
||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||
import io.nats.client.Connection;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.java.Log;
|
||||
|
||||
|
|
@ -13,18 +13,18 @@ import java.net.InetSocketAddress;
|
|||
@RequiredArgsConstructor
|
||||
public class ServerRegisterWatchdog {
|
||||
|
||||
private final MessageBroker natsRepo;
|
||||
private final MessageBroker messageBroker = ScrowAPI.getMessageBroker();
|
||||
private final ProxyServer server;
|
||||
|
||||
public void listen() {
|
||||
natsRepo.subscribe("event.instance.up", doc -> {
|
||||
messageBroker.subscribe("event.instance.up", doc -> {
|
||||
var handle = doc.getString("handle");
|
||||
var port = doc.getInteger("port");
|
||||
server.unregisterServer(new ServerInfo(handle, new InetSocketAddress(port)));
|
||||
log.info("registered server " + handle);
|
||||
});
|
||||
|
||||
natsRepo.subscribe("event.instance.down", doc -> {
|
||||
messageBroker.subscribe("event.instance.down", doc -> {
|
||||
var handle = doc.getString("handle");
|
||||
var port = doc.getInteger("port");
|
||||
server.unregisterServer(new ServerInfo(handle, new InetSocketAddress(port)));
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package de.kentoj.scrow.corevelocity.privmsg;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Cache;
|
||||
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
|
@ -10,8 +10,8 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
public class LastTargetCache {
|
||||
|
||||
private final Cache<@NotNull UUID, UUID> cache = Caffeine.newBuilder()
|
||||
.expireAfterWrite(20, TimeUnit.MINUTES)
|
||||
private final Cache<@NotNull UUID, @NotNull UUID> cache = CacheBuilder.newBuilder()
|
||||
.expireAfterAccess(20, TimeUnit.MINUTES)
|
||||
.build();
|
||||
|
||||
public @Nullable UUID getLastTarget(UUID uuid) {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ public class ReplyCommand implements SyncCommandExecutor<CommandSource> {
|
|||
|
||||
if (target == null)
|
||||
return Results.failure("The player you last messaged is no longer online.");
|
||||
cache.setLastTarget(sender.getUniqueId(), target.getUniqueId());
|
||||
privMsgHandler.handle(sender, target, msg);
|
||||
return Results.success(new Object());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue