diff --git a/Sponge/pom.xml b/Sponge/pom.xml index 36e6545..b64efd8 100644 --- a/Sponge/pom.xml +++ b/Sponge/pom.xml @@ -25,6 +25,12 @@ 8.1.0 provided + + dev.brighten.antivpn + Common + 1.8.4 + provided + diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayer.java b/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayer.java new file mode 100644 index 0000000..9f85223 --- /dev/null +++ b/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayer.java @@ -0,0 +1,31 @@ +package dev.brighten.antivpn.sponge; + +import dev.brighten.antivpn.api.APIPlayer; +import dev.brighten.antivpn.sponge.util.StringUtil; +import net.kyori.adventure.text.Component; +import org.spongepowered.api.entity.living.player.server.ServerPlayer; + +public class SpongePlayer extends APIPlayer { + + private final ServerPlayer player; + + public SpongePlayer(ServerPlayer player) { + super(player.uniqueId(), player.name(), player.connection().address().getAddress()); + this.player = player; + } + + @Override + public void sendMessage(String message) { + player.sendMessage(StringUtil.translateColorCodes('&', message); + } + + @Override + public void kickPlayer(String reason) { + player.kick(Component.text(StringUtil.translateColorCodes('&', reason))); + } + + @Override + public boolean hasPermission(String permission) { + return player.hasPermission(permission); + } +} diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayerExecutor.java b/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayerExecutor.java new file mode 100644 index 0000000..414d7b3 --- /dev/null +++ b/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayerExecutor.java @@ -0,0 +1,31 @@ +package dev.brighten.antivpn.sponge; + +import dev.brighten.antivpn.api.APIPlayer; +import dev.brighten.antivpn.api.PlayerExecutor; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class SpongePlayerExecutor implements PlayerExecutor { + @Override + public Optional getPlayer(String name) { + + return Optional.empty(); + } + + @Override + public Optional getPlayer(UUID uuid) { + return Optional.empty(); + } + + @Override + public void unloadPlayer(UUID uuid) { + + } + + @Override + public List getOnlinePlayers() { + return null; + } +} diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java b/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java index 7192463..39d9c50 100644 --- a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java +++ b/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java @@ -1,4 +1,28 @@ package dev.brighten.antivpn.sponge; +import com.google.inject.Inject; +import org.spongepowered.api.Server; +import org.spongepowered.api.event.Listener; +import org.spongepowered.api.event.lifecycle.StartedEngineEvent; +import org.spongepowered.plugin.builtin.jvm.Plugin; + +import java.util.logging.Logger; + +@Plugin("kaurivpn") public class SpongePlugin { + + public static SpongePlugin INSTANCE; + //Plugin init + + @Inject + private Logger logger; + + @Listener + public void onServerStart(final StartedEngineEvent event) { + INSTANCE = this; + + logger.info("Starting AntiVPN services..."); + //Start AntiVPN + } + } diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/util/StringUtil.java b/Sponge/src/main/java/dev/brighten/antivpn/sponge/util/StringUtil.java new file mode 100644 index 0000000..22d1a5a --- /dev/null +++ b/Sponge/src/main/java/dev/brighten/antivpn/sponge/util/StringUtil.java @@ -0,0 +1,17 @@ +package dev.brighten.antivpn.sponge.util; + +public class StringUtil { + + public static String translateColorCodes(char altColorChar, String textToTranslate) { + char[] b = textToTranslate.toCharArray(); + + for(int i = 0; i < b.length - 1; ++i) { + if (b[i] == altColorChar && "0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(b[i + 1]) > -1) { + b[i] = 167; + b[i + 1] = Character.toLowerCase(b[i + 1]); + } + } + + return new String(b); + } +}