Skip to content

Commit f26477d

Browse files
Implementations copied
1 parent 97ae701 commit f26477d

24 files changed

Lines changed: 874 additions & 5 deletions
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package studio.o7.octopus.plugin;
2+
3+
import studio.o7.octopus.plugin.api.Octopus;
4+
5+
public interface PluginInstance {
6+
7+
Octopus get();
8+
9+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package studio.o7.octopus.plugin;
2+
3+
import lombok.Getter;
4+
import lombok.NonNull;
5+
import lombok.experimental.UtilityClass;
6+
import org.jetbrains.annotations.ApiStatus;
7+
8+
@ApiStatus.Internal
9+
@UtilityClass
10+
public class Unsafe {
11+
@Getter
12+
private PluginInstance instance;
13+
14+
void setInstance(@NonNull PluginInstance pluginInstance) {
15+
if (instance != null)
16+
throw new IllegalArgumentException("Cannot initiate plugin twice");
17+
instance = pluginInstance;
18+
}
19+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package studio.o7.octopus.plugin.api;
2+
3+
import org.bukkit.plugin.java.JavaPlugin;
4+
import org.jspecify.annotations.NullMarked;
5+
import studio.o7.octopus.plugin.api.client.OctopusClient;
6+
import studio.o7.octopus.plugin.Unsafe;
7+
8+
@NullMarked
9+
public interface Octopus {
10+
11+
static Octopus get() {
12+
return Unsafe.getInstance().get();
13+
}
14+
15+
OctopusClient getClient();
16+
17+
JavaPlugin getLibraryPlugin();
18+
19+
String getIdentifier();
20+
21+
String getHost();
22+
23+
int getPort();
24+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package studio.o7.octopus.plugin.api.client;
2+
3+
import studio.o7.octopus.sdk.gen.api.v1.EntryResponse;
4+
import studio.o7.octopus.sdk.gen.api.v1.Event;
5+
6+
import java.util.List;
7+
8+
public interface OctopusClient {
9+
10+
boolean emitEvent(Event event);
11+
12+
EntryResponse getEntry(String key);
13+
14+
void initializeSubscription(List<String> subscriptions);
15+
16+
void updateSubscriptions(List<String> subscriptions);
17+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package studio.o7.octopus.plugin.api.events;
2+
3+
import lombok.Getter;
4+
import lombok.RequiredArgsConstructor;
5+
import org.bukkit.event.Event;
6+
import org.bukkit.event.HandlerList;
7+
import org.jetbrains.annotations.NotNull;
8+
import studio.o7.octopus.sdk.gen.api.v1.Action;
9+
10+
@RequiredArgsConstructor
11+
@Getter
12+
public class OctopusActionEvent extends Event {
13+
14+
private static final HandlerList HANDLER_LIST = new HandlerList();
15+
private final Action action;
16+
private final String key;
17+
18+
@Override
19+
public @NotNull HandlerList getHandlers() {
20+
return HANDLER_LIST;
21+
}
22+
23+
public static HandlerList getHandlerList() {
24+
return HANDLER_LIST;
25+
}
26+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package studio.o7.octopus.plugin.api.events;
2+
3+
import lombok.Getter;
4+
import lombok.RequiredArgsConstructor;
5+
import org.bukkit.event.Event;
6+
import org.bukkit.event.HandlerList;
7+
import org.jetbrains.annotations.NotNull;
8+
import studio.o7.octopus.sdk.gen.api.v1.EntryEdit;
9+
10+
@RequiredArgsConstructor
11+
@Getter
12+
public class OctopusEntryChangeEvent extends Event {
13+
14+
private static final HandlerList HANDLER_LIST = new HandlerList();
15+
private final EntryEdit entry;
16+
private final String key;
17+
18+
@Override
19+
public @NotNull HandlerList getHandlers() {
20+
return HANDLER_LIST;
21+
}
22+
23+
public static HandlerList getHandlerList() {
24+
return HANDLER_LIST;
25+
}
26+
27+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package studio.o7.octopus.plugin.api.events;
2+
3+
import lombok.Getter;
4+
import lombok.RequiredArgsConstructor;
5+
import org.bukkit.event.Event;
6+
import org.bukkit.event.HandlerList;
7+
import org.jetbrains.annotations.NotNull;
8+
import studio.o7.octopus.sdk.gen.api.v1.PlayerNotification;
9+
10+
@RequiredArgsConstructor
11+
@Getter
12+
public class OctopusPlayerNotificationEvent extends Event {
13+
private static final HandlerList HANDLER_LIST = new HandlerList();
14+
private final PlayerNotification playerNotification;
15+
private final String key;
16+
17+
@Override
18+
public @NotNull HandlerList getHandlers() {
19+
return HANDLER_LIST;
20+
}
21+
22+
public static HandlerList getHandlerList() {
23+
return HANDLER_LIST;
24+
}
25+
}

plugin/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
dependencies {
32
implementation(project(":api"))
43
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package studio.o7.octopus.plugin;
2+
3+
import org.bukkit.plugin.Plugin;
4+
import org.bukkit.plugin.java.JavaPlugin;
5+
import org.jetbrains.annotations.NotNull;
6+
import studio.o7.octopus.plugin.api.Octopus;
7+
import studio.o7.octopus.plugin.api.client.OctopusClient;
8+
import studio.o7.octopus.plugin.client.OctopusClientImpl;
9+
10+
public final class OctopusImpl implements Octopus {
11+
12+
private final OctopusClient client;
13+
private final String identifier;
14+
private final String host;
15+
private final int port;
16+
17+
public OctopusImpl(Plugin plugin) {
18+
this.identifier = "test-minecraft-plugin";
19+
this.host = "127.0.0.1";
20+
this.port = 50051;
21+
this.client = new OctopusClientImpl(host, port, plugin, identifier);
22+
}
23+
24+
@Override
25+
public @NotNull OctopusClient getClient() {
26+
return client;
27+
}
28+
29+
@Override
30+
public @NotNull JavaPlugin getLibraryPlugin() {
31+
return JavaPlugin.getPlugin(OctopusPlugin.class);
32+
}
33+
34+
@Override
35+
public @NotNull String getIdentifier() {
36+
return identifier;
37+
}
38+
39+
@Override
40+
public @NotNull String getHost() {
41+
return host;
42+
}
43+
44+
@Override
45+
public int getPort() {
46+
return port;
47+
}
48+
49+
}
Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,32 @@
11
package studio.o7.octopus.plugin;
22

3+
import lombok.Getter;
4+
import org.bukkit.event.HandlerList;
35
import org.bukkit.plugin.java.JavaPlugin;
6+
import studio.o7.octopus.plugin.api.Octopus;
47

5-
public final class OctopusPlugin extends JavaPlugin {
8+
@SuppressWarnings("UnstableApiUsage")
9+
@Getter
10+
public final class OctopusPlugin extends JavaPlugin implements PluginInstance {
611

7-
}
12+
private OctopusImpl octopus;
13+
14+
public OctopusPlugin() {
15+
Unsafe.setInstance(this);
16+
}
17+
18+
@Override
19+
public void onEnable() {
20+
octopus = new OctopusImpl(this);
21+
}
22+
23+
@Override
24+
public void onDisable() {
25+
HandlerList.unregisterAll(this);
26+
}
27+
28+
@Override
29+
public Octopus get() {
30+
return this.octopus;
31+
}
32+
}

0 commit comments

Comments
 (0)