Fixed order of retrieving data from bytestream, improved naming, adding logging

This commit is contained in:
Teriuihi 2022-12-05 21:36:24 +01:00
parent e76bd6f5bb
commit aa4abfcdee
5 changed files with 16 additions and 9 deletions

View File

@ -7,7 +7,9 @@ dependencies {
}
tasks {
jar {
enabled = true
}
}
publishing {

View File

@ -6,7 +6,7 @@ plugins {
allprojects {
group = "com.alttd.datalock"
version = "1.0.0-SNAPSHOT"
version = "1.1.0-SNAPSHOT"
description = "Altitude DataLock Library."
}
@ -23,7 +23,7 @@ subprojects {
tasks {
jar {
enabled = false
enabled = true
}
}

View File

@ -17,7 +17,7 @@ dependencies {
tasks {
jar {
enabled = false
enabled = true
}
shadowJar {

View File

@ -5,8 +5,8 @@ import com.google.common.io.ByteStreams;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.HashSet;
import java.util.Objects;
import java.util.UUID;
import java.util.logging.Level;
public class DataLock implements DataLockAPI {
@ -35,7 +35,9 @@ public class DataLock implements DataLockAPI {
ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF(requestType.subChannel);
out.writeUTF(idempotencyData.data());
out.writeUTF(idempotencyData.idempotencyToken().toString());
plugin.getServer().sendPluginMessage(plugin, idempotencyData.channel(), out.toByteArray());
DataLockLib.getInstance().getLogger().log(Level.INFO, "Send plugin message on [" + requestType.subChannel + "] about data: [" + idempotencyData.data() + "]");
}
private final HashSet<String> activeChannels = new HashSet<>();
@ -74,8 +76,8 @@ public class DataLock implements DataLockAPI {
@Override
public void run() {
for (RequestType requestType : RequestType.values()) {
for (IdempotencyData next : activeRequests.getIdempotencyData(requestType)) {
sendPluginMessage(requestType, next);
for (IdempotencyData idempotencyData : activeRequests.getIdempotencyData(requestType)) {
sendPluginMessage(requestType, idempotencyData);
}
}
}

View File

@ -7,6 +7,7 @@ import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;
import java.util.UUID;
import java.util.logging.Level;
class PluginMessageListener implements org.bukkit.plugin.messaging.PluginMessageListener {
@ -23,14 +24,16 @@ class PluginMessageListener implements org.bukkit.plugin.messaging.PluginMessage
return;
}
ByteArrayDataInput in = ByteStreams.newDataInput(bytes);
String data = in.readUTF();
String subChannel = in.readUTF();
boolean result = in.readBoolean();
String data = in.readUTF();
UUID idempotency = UUID.fromString(in.readUTF());
IdempotencyData idempotencyData = new IdempotencyData(channel, data, idempotency);
DataLockLib.getInstance().getLogger().log(Level.INFO, "Received plugin message on [" + subChannel + "] about data: [" + data + "]");
new BukkitRunnable() {
@Override
public void run() {
switch (in.readUTF()) {
switch (subChannel) {
case "try-lock-result" -> {
if (!alreadyReceived.putIdempotencyData(RequestType.TRY_LOCK, idempotencyData))
return;