Implement DataLockAPI.java in DataLock.java
This commit is contained in:
parent
3c843d4004
commit
03ed8939ed
|
|
@ -7,7 +7,7 @@ import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class DataLock {
|
public class DataLock implements DataLockAPI {
|
||||||
|
|
||||||
private static DataLock instance = null;
|
private static DataLock instance = null;
|
||||||
|
|
||||||
|
|
@ -21,6 +21,7 @@ public class DataLock {
|
||||||
private final DataLockLib plugin;
|
private final DataLockLib plugin;
|
||||||
private final Idempotency activeRequests;
|
private final Idempotency activeRequests;
|
||||||
private DataLock() {
|
private DataLock() {
|
||||||
|
DataLockAPI.Provider.register(this);
|
||||||
pluginMessageListener = new PluginMessageListener();
|
pluginMessageListener = new PluginMessageListener();
|
||||||
plugin = DataLockLib.getInstance();
|
plugin = DataLockLib.getInstance();
|
||||||
activeRequests = new Idempotency();
|
activeRequests = new Idempotency();
|
||||||
|
|
@ -41,22 +42,26 @@ public class DataLock {
|
||||||
return activeRequests.removeIdempotencyData(requestType, idempotencyData);
|
return activeRequests.removeIdempotencyData(requestType, idempotencyData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public synchronized void registerChannel(String channel) {
|
public synchronized void registerChannel(String channel) {
|
||||||
activeChannels.add(channel);
|
activeChannels.add(channel);
|
||||||
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, channel);
|
plugin.getServer().getMessenger().registerOutgoingPluginChannel(plugin, channel);
|
||||||
plugin.getServer().getMessenger().registerIncomingPluginChannel(plugin, channel, pluginMessageListener);
|
plugin.getServer().getMessenger().registerIncomingPluginChannel(plugin, channel, pluginMessageListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public synchronized boolean isActiveChannel(String channel) {
|
public synchronized boolean isActiveChannel(String channel) {
|
||||||
return activeChannels.contains(channel);
|
return activeChannels.contains(channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void tryLock(String channel, String data) {
|
public void tryLock(String channel, String data) {
|
||||||
IdempotencyData idempotencyData = new IdempotencyData(channel, data, UUID.randomUUID());
|
IdempotencyData idempotencyData = new IdempotencyData(channel, data, UUID.randomUUID());
|
||||||
activeRequests.putIdempotencyData(RequestType.TRY_LOCK, idempotencyData);
|
activeRequests.putIdempotencyData(RequestType.TRY_LOCK, idempotencyData);
|
||||||
sendPluginMessage(RequestType.TRY_LOCK, idempotencyData);
|
sendPluginMessage(RequestType.TRY_LOCK, idempotencyData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void tryUnlock(String channel, String data) {
|
public void tryUnlock(String channel, String data) {
|
||||||
IdempotencyData idempotencyData = new IdempotencyData(channel, data, UUID.randomUUID());
|
IdempotencyData idempotencyData = new IdempotencyData(channel, data, UUID.randomUUID());
|
||||||
activeRequests.putIdempotencyData(RequestType.TRY_UNLOCK, idempotencyData);
|
activeRequests.putIdempotencyData(RequestType.TRY_UNLOCK, idempotencyData);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user