Skip to content

Commit

Permalink
feat(API): Make some classes final or annotate them with APIStatus
Browse files Browse the repository at this point in the history
  • Loading branch information
GeorgeV220 committed May 18, 2023
1 parent d8039c4 commit 41f106c
Show file tree
Hide file tree
Showing 37 changed files with 154 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@
import com.georgev22.api.libraryloader.exceptions.InvalidDependencyException;
import com.georgev22.api.libraryloader.exceptions.UnknownDependencyException;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.ApiStatus;

import static com.georgev22.library.minecraft.BukkitMinecraftUtils.MinecraftVersion.V1_16_R3;
import static com.georgev22.library.minecraft.BukkitMinecraftUtils.MinecraftVersion.getCurrentVersion;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SkinOverlayBukkit extends JavaPlugin {

private SkinOverlayPluginImpl skinOverlayPluginImpl;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@
import net.glowstone.util.library.Library;
import net.glowstone.util.library.LibraryManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.ApiStatus;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SkinOverlayGlowStone extends JavaPlugin {

private SkinOverlayPluginImpl skinOverlayPluginImpl;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;

import java.io.File;
Expand All @@ -38,6 +39,8 @@
@MavenLibrary(groupId = "commons-codec", artifactId = "commons-codec", version = "1.15")
@MavenLibrary(groupId = "commons-lang", artifactId = "commons-lang", version = "2.6")
@MavenLibrary("org.apache.commons:commons-lang3:3.12.0:https://repo1.maven.org/maven2/")
@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SkinOverlayPluginImpl implements SkinOverlayImpl {

private int tick = 0;
Expand All @@ -46,20 +49,22 @@ public class SkinOverlayPluginImpl implements SkinOverlayImpl {

private final JavaPlugin plugin;
private final boolean glowStone;
private final SkinOverlay skinOverlay;
private static SkinOverlayPluginImpl instance;

public static SkinOverlayPluginImpl getInstance() {
return instance;
}

public SkinOverlayPluginImpl(JavaPlugin javaPlugin, boolean glowStone) {
this.skinOverlay = new SkinOverlay(this);
instance = this;
this.plugin = javaPlugin;
this.glowStone = glowStone;
}

public void onLoad() {
SkinOverlay.getInstance().onLoad(this);
skinOverlay.onLoad();
}

public void onEnable() {
Expand All @@ -70,31 +75,30 @@ public void onEnable() {
SchedulerManager.getScheduler().mainThreadHeartbeat(tick);
}, 0, 1L);
switch (getCurrentVersion()) {
case V1_17_R1 -> SkinOverlay.getInstance().setSkinHandler(new SkinHandler_1_17());
case V1_18_R1 -> SkinOverlay.getInstance().setSkinHandler(new SkinHandler_1_18());
case V1_18_R2 -> SkinOverlay.getInstance().setSkinHandler(new SkinHandler_1_18_R2());
case V1_19_R1 -> SkinOverlay.getInstance().setSkinHandler(new SkinHandler_1_19());
case V1_19_R2 -> SkinOverlay.getInstance().setSkinHandler(new SkinHandler_1_19_R2());
case V1_19_R3 -> SkinOverlay.getInstance().setSkinHandler(new SkinHandler_1_19_R3());
case V1_17_R1 -> skinOverlay.setSkinHandler(new SkinHandler_1_17());
case V1_18_R1 -> skinOverlay.setSkinHandler(new SkinHandler_1_18());
case V1_18_R2 -> skinOverlay.setSkinHandler(new SkinHandler_1_18_R2());
case V1_19_R1 -> skinOverlay.setSkinHandler(new SkinHandler_1_19());
case V1_19_R2 -> skinOverlay.setSkinHandler(new SkinHandler_1_19_R2());
case V1_19_R3 -> skinOverlay.setSkinHandler(new SkinHandler_1_19_R3());
case UNKNOWN -> {
if (glowStone) {
SkinOverlay.getInstance().setSkinHandler(new SkinHandler_GlowStone());
skinOverlay.setSkinHandler(new SkinHandler_GlowStone());
} else {
SkinOverlay.getInstance().setSkinHandler(new SkinHandler_Unsupported());
skinOverlay.setSkinHandler(new SkinHandler_Unsupported());
}
}
default -> SkinOverlay.getInstance().setSkinHandler(new SkinHandler_Legacy());
default -> skinOverlay.setSkinHandler(new SkinHandler_Legacy());
}
SkinOverlay.getInstance().setCommandManager(new PaperCommandManager(plugin));
SkinOverlay.getInstance().onEnable();
SkinOverlay.getInstance().setupCommands();
skinOverlay.setCommandManager(new PaperCommandManager(plugin));
skinOverlay.onEnable();
BukkitMinecraftUtils.registerListeners(plugin, new PlayerListeners(), new DeveloperInformListener());
if (glowStone)
BukkitMinecraftUtils.registerListeners(plugin, new GlowStonePlayerListeners());
if (PaperLib.isPaper() & getCurrentVersion().isAboveOrEqual(V1_15_R1))
BukkitMinecraftUtils.registerListeners(plugin, new PaperPlayerListeners());
if (OptionsUtil.PROXY.getBooleanValue()) {
SkinOverlay.getInstance().setPluginMessageUtils(new BukkitPluginMessageUtils());
skinOverlay.setPluginMessageUtils(new BukkitPluginMessageUtils());
Bukkit.getServer().getMessenger().registerIncomingPluginChannel(plugin, "skinoverlay:bungee", new PlayerListeners());
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "skinoverlay:message");
}
Expand All @@ -107,7 +111,7 @@ public void onEnable() {
public void onDisable() {
Bukkit.getServer().getMessenger().unregisterIncomingPluginChannel(plugin);
Bukkit.getServer().getMessenger().unregisterOutgoingPluginChannel(plugin);
SkinOverlay.getInstance().onDisable();
skinOverlay.onDisable();
Bukkit.getScheduler().cancelTasks(plugin);
if (this.adventure != null) {
this.adventure.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,15 @@
import net.glowstone.net.message.play.game.UserListItemMessage;
import net.glowstone.net.message.play.inv.HeldItemMessage;
import org.bukkit.GameMode;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;

import java.util.Collections;
import java.util.concurrent.CompletableFuture;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SkinHandler_GlowStone extends SkinHandler {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.mojang.authlib.GameProfile;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;

import java.io.IOException;
Expand All @@ -29,6 +30,8 @@
import static com.georgev22.library.minecraft.BukkitMinecraftUtils.MinecraftVersion.*;
import static com.georgev22.library.utilities.Utils.Reflection.*;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SkinHandler_Legacy extends SkinHandler_Unsupported {
private final Class<?> playOutRespawn;
private final Class<?> playOutPlayerInfo;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@
import com.georgev22.skinoverlay.handler.SProperty;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
import net.glowstone.entity.meta.profile.GlowPlayerProfile;
import org.jetbrains.annotations.ApiStatus;

import java.util.UUID;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SGameProfileGlowStone extends SGameProfile {

public SGameProfileGlowStone(String name, UUID uuid) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.jetbrains.annotations.ApiStatus;


@ApiStatus.Internal
@ApiStatus.NonExtendable
public class DeveloperInformListener implements Listener {

private final SkinOverlay skinOverlay = SkinOverlay.getInstance();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.ApiStatus;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class GlowStonePlayerListeners implements Listener {

private final SkinOverlay skinOverlay = SkinOverlay.getInstance();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.ApiStatus;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class PaperPlayerListeners implements Listener {

private final SkinOverlay skinOverlay = SkinOverlay.getInstance();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.messaging.PluginMessageListener;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;

import javax.imageio.ImageIO;
Expand All @@ -28,6 +29,8 @@

import static com.georgev22.skinoverlay.utilities.Utilities.decrypt;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class PlayerListeners implements Listener, PluginMessageListener {
private final SkinOverlay skinOverlay = SkinOverlay.getInstance();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Plugin;
import org.bstats.bungeecord.Metrics;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;

import java.io.File;
Expand All @@ -40,11 +41,13 @@
@MavenLibrary(groupId = "commons-lang", artifactId = "commons-lang", version = "2.6")
@MavenLibrary("com.mojang:authlib:3.11.50:https://nexus.velocitypowered.com/repository/maven-public/")
@MavenLibrary("org.apache.commons:commons-lang3:3.12.0:https://repo1.maven.org/maven2/")
@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SkinOverlayBungee extends Plugin implements SkinOverlayImpl {

private int tick = 0;

private boolean enabled = false;
private SkinOverlay skinOverlay;

private BungeeAudiences adventure;

Expand All @@ -56,24 +59,24 @@ public static SkinOverlayBungee getInstance() {

@Override
public void onLoad() {
this.skinOverlay = new SkinOverlay(this);
skinOverlayBungee = this;
try {
new LibraryLoader(this.getClass(), this.getDataFolder()).loadAll(true);
} catch (InvalidDependencyException | UnknownDependencyException e) {
throw new RuntimeException(e);
}
SkinOverlay.getInstance().onLoad(this);
skinOverlay.onLoad();
}

@Override
public void onEnable() {
this.adventure = BungeeAudiences.create(this);
getProxy().getScheduler().schedule(this, () -> SchedulerManager.getScheduler().mainThreadHeartbeat(tick++), 0, 50L, TimeUnit.MILLISECONDS);
SkinOverlay.getInstance().setSkinHandler(new SkinHandler_BungeeCord());
SkinOverlay.getInstance().setCommandManager(new BungeeCommandManager(this));
SkinOverlay.getInstance().onEnable();
SkinOverlay.getInstance().setupCommands();
SkinOverlay.getInstance().setPluginMessageUtils(new BungeeCordPluginMessageUtils());
skinOverlay.setSkinHandler(new SkinHandler_BungeeCord());
skinOverlay.setCommandManager(new BungeeCommandManager(this));
skinOverlay.onEnable();
skinOverlay.setPluginMessageUtils(new BungeeCordPluginMessageUtils());
BungeeMinecraftUtils.registerListeners(this, new PlayerListeners(), new DeveloperInformListener());
getProxy().registerChannel("skinoverlay:bungee");
getProxy().registerChannel("skinoverlay:message");
Expand All @@ -84,7 +87,7 @@ public void onEnable() {

@Override
public void onDisable() {
SkinOverlay.getInstance().onDisable();
skinOverlay.onDisable();
getProxy().getScheduler().cancel(this);
if (this.adventure != null) {
this.adventure.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.connection.InitialHandler;
import net.md_5.bungee.protocol.Property;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;

import java.util.concurrent.CompletableFuture;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SkinHandler_BungeeCord extends SkinHandler {

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@
import net.md_5.bungee.connection.InitialHandler;
import net.md_5.bungee.connection.LoginResult;
import net.md_5.bungee.protocol.Property;
import org.jetbrains.annotations.ApiStatus;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class SGameProfileBungee extends SGameProfile {


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
import net.md_5.bungee.api.event.PostLoginEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
import org.jetbrains.annotations.ApiStatus;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class DeveloperInformListener implements Listener {

private final SkinOverlay skinOverlay = SkinOverlay.getInstance();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@
import net.md_5.bungee.api.event.PostLoginEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
import org.jetbrains.annotations.ApiStatus;

import java.util.Objects;
import java.util.UUID;

@ApiStatus.Internal
@ApiStatus.NonExtendable
public class PlayerListeners implements Listener {

private final SkinOverlay skinOverlay = SkinOverlay.getInstance();
Expand Down

0 comments on commit 41f106c

Please sign in to comment.