Skip to content
This repository was archived by the owner on Feb 19, 2024. It is now read-only.

Commit cd50a6d

Browse files
author
BuildTools
committed
Updated GitHub repository. Added FoliaLib 0.2.4. Added PaperLib 1.0.8. Added full Folia support. Added FloodgateAPI integration. Removed unused import statements. Added BedrockPlayerDetectedEvent to API. Changed plugin version to 2.5.7.
1 parent fdb50e8 commit cd50a6d

35 files changed

Lines changed: 394 additions & 151 deletions

ClientDetector.iml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="minecraft" name="Minecraft">
5+
<configuration>
6+
<autoDetectTypes>
7+
<platformType>ADVENTURE</platformType>
8+
<platformType>BUNGEECORD</platformType>
9+
<platformType>SPIGOT</platformType>
10+
<platformType>VELOCITY</platformType>
11+
</autoDetectTypes>
12+
</configuration>
13+
</facet>
14+
</component>
15+
<component name="McpModuleSettings">
16+
<option name="srgType" value="SRG" />
17+
</component>
18+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
19+
<output url="file://$MODULE_DIR$/target/classes" />
20+
<output-test url="file://$MODULE_DIR$/target/test-classes" />
21+
<content url="file://$MODULE_DIR$">
22+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
23+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
24+
<sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
25+
<excludeFolder url="file://$MODULE_DIR$/target" />
26+
</content>
27+
<orderEntry type="inheritedJdk" />
28+
<orderEntry type="sourceFolder" forTests="false" />
29+
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
30+
<orderEntry type="library" name="Maven: junit:junit:4.10" level="project" />
31+
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
32+
<orderEntry type="library" name="Maven: com.github.retrooper.packetevents:spigot:2.0.0-SNAPSHOT" level="project" />
33+
<orderEntry type="library" name="Maven: com.github.retrooper.packetevents:api:2.0.0-SNAPSHOT" level="project" />
34+
<orderEntry type="library" name="Maven: net.kyori:adventure-api:4.14.0" level="project" />
35+
<orderEntry type="library" name="Maven: net.kyori:adventure-key:4.14.0" level="project" />
36+
<orderEntry type="library" name="Maven: net.kyori:examination-api:1.3.0" level="project" />
37+
<orderEntry type="library" name="Maven: net.kyori:examination-string:1.3.0" level="project" />
38+
<orderEntry type="library" name="Maven: net.kyori:adventure-text-serializer-gson:4.14.0" level="project" />
39+
<orderEntry type="library" name="Maven: net.kyori:adventure-text-serializer-json:4.14.0" level="project" />
40+
<orderEntry type="library" name="Maven: net.kyori:adventure-text-serializer-legacy:4.14.0" level="project" />
41+
<orderEntry type="library" name="Maven: net.kyori:adventure-nbt:4.14.0" level="project" />
42+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.26" level="project" />
43+
<orderEntry type="library" scope="PROVIDED" name="Maven: me.clip:placeholderapi:2.11.3" level="project" />
44+
<orderEntry type="library" name="Maven: org.jetbrains:annotations:23.0.0" level="project" />
45+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bstats:bstats-bukkit:3.0.1" level="project" />
46+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bstats:bstats-base:3.0.1" level="project" />
47+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.kyori:adventure-platform-bukkit:4.3.0" level="project" />
48+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.kyori:adventure-platform-api:4.3.0" level="project" />
49+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.kyori:adventure-text-serializer-bungeecord:4.3.0" level="project" />
50+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.kyori:adventure-text-serializer-gson-legacy-impl:4.13.0" level="project" />
51+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.kyori:adventure-platform-facet:4.3.0" level="project" />
52+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.kyori:adventure-platform-viaversion:4.3.0" level="project" />
53+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-api:1.20-R0.1-SNAPSHOT" level="project" />
54+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-chat:1.20-R0.1-SNAPSHOT" level="project" />
55+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-config:1.20-R0.1-SNAPSHOT" level="project" />
56+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-event:1.20-R0.1-SNAPSHOT" level="project" />
57+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-protocol:1.20-R0.1-SNAPSHOT" level="project" />
58+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:brigadier:1.0.16-SNAPSHOT" level="project" />
59+
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-codec:4.1.93.Final" level="project" />
60+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.sf.trove4j:core:3.1.0" level="project" />
61+
<orderEntry type="library" scope="PROVIDED" name="Maven: se.llbit:jo-nbt:1.3.0" level="project" />
62+
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-transport-native-unix-common:4.1.93.Final" level="project" />
63+
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-common:4.1.93.Final" level="project" />
64+
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-buffer:4.1.93.Final" level="project" />
65+
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-transport:4.1.93.Final" level="project" />
66+
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-resolver:4.1.93.Final" level="project" />
67+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:2.0" level="project" />
68+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:guava:31.1-jre" level="project" />
69+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
70+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
71+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
72+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.errorprone:error_prone_annotations:2.11.0" level="project" />
73+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
74+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT" level="project" />
75+
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.10" level="project" />
76+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.joml:joml:1.10.5" level="project" />
77+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.velocitypowered:velocity-api:3.1.1" level="project" />
78+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.moandjiezana.toml:toml4j:0.7.2" level="project" />
79+
<orderEntry type="library" scope="PROVIDED" name="Maven: net.kyori:adventure-text-serializer-plain:4.9.3" level="project" />
80+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
81+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.inject:guice:5.0.1" level="project" />
82+
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.inject:javax.inject:1" level="project" />
83+
<orderEntry type="library" scope="PROVIDED" name="Maven: aopalliance:aopalliance:1.0" level="project" />
84+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.checkerframework:checker-qual:3.6.1" level="project" />
85+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.velocitypowered:velocity-brigadier:1.0.0-SNAPSHOT" level="project" />
86+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spongepowered:configurate-hocon:3.7.2" level="project" />
87+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spongepowered:configurate-core:3.7.2" level="project" />
88+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.typesafe:config:1.4.0" level="project" />
89+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spongepowered:configurate-yaml:3.7.2" level="project" />
90+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spongepowered:configurate-gson:3.7.2" level="project" />
91+
<orderEntry type="library" name="Maven: com.tcoded:FoliaLib:0.2.4" level="project" />
92+
<orderEntry type="library" name="Maven: io.papermc:paperlib:1.0.8" level="project" />
93+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.geysermc.floodgate:api:2.2.2-SNAPSHOT" level="project" />
94+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.geysermc:common:2.0.7-SNAPSHOT" level="project" />
95+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.geysermc.cumulus:cumulus:1.1.1" level="project" />
96+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.geysermc.event:events:1.0-SNAPSHOT" level="project" />
97+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.lanternpowered:lmbda:2.0.0" level="project" />
98+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm:7.1" level="project" />
99+
</component>
100+
</module>

pom.xml

Lines changed: 66 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66

77
<groupId>de.sportkanone123</groupId>
88
<artifactId>ClientDetector</artifactId>
9-
<version>2.5.5</version>
9+
<version>2.5.7</version>
1010

1111
<properties>
1212
<maven.compiler.source>8</maven.compiler.source>
1313
<maven.compiler.target>8</maven.compiler.target>
1414
</properties>
1515

1616
<build>
17+
<defaultGoal>clean package</defaultGoal>
1718
<plugins>
1819
<plugin>
1920
<groupId>org.apache.maven.plugins</groupId>
@@ -35,17 +36,26 @@
3536
<plugin>
3637
<groupId>org.apache.maven.plugins</groupId>
3738
<artifactId>maven-shade-plugin</artifactId>
38-
<version>3.1.0</version>
39+
<version>3.4.1</version> <!-- Make sure to always use the latest version (https://maven.apache.org/plugins/maven-shade-plugin/) -->
40+
<configuration>
41+
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
42+
<relocations>
43+
<relocation>
44+
<pattern>io.papermc.lib</pattern>
45+
<shadedPattern>de.sportkanone123.clientdetector.spigot.paperlib</shadedPattern> <!-- Replace this -->
46+
</relocation>
47+
<relocation>
48+
<pattern>com.tcoded.folialib</pattern>
49+
<shadedPattern>de.sportkanone123.clientdetector.spigot.folialib</shadedPattern>
50+
</relocation>
51+
</relocations>
52+
</configuration>
3953
<executions>
4054
<execution>
4155
<phase>package</phase>
4256
<goals>
4357
<goal>shade</goal>
4458
</goals>
45-
<configuration>
46-
<minimizeJar>false</minimizeJar>
47-
<finalName>ClientDetector</finalName>
48-
</configuration>
4959
</execution>
5060
</executions>
5161
</plugin>
@@ -88,9 +98,28 @@
8898
<id>papermc</id>
8999
<url>https://repo.papermc.io/repository/maven-public/</url>
90100
</repository>
101+
102+
<repository>
103+
<id>devmart-other</id>
104+
<url>https://nexuslite.gcnt.net/repos/other/</url>
105+
</repository>
106+
107+
<repository>
108+
<id>opencollab-snapshot-repo</id>
109+
<url>https://repo.opencollab.dev/main/</url>
110+
</repository>
111+
91112
</repositories>
92113

93114
<dependencies>
115+
116+
<!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
117+
<dependency>
118+
<groupId>com.googlecode.json-simple</groupId>
119+
<artifactId>json-simple</artifactId>
120+
<version>1.1.1</version>
121+
</dependency>
122+
94123
<dependency>
95124
<groupId>com.github.retrooper.packetevents</groupId>
96125
<artifactId>spigot</artifactId>
@@ -114,15 +143,22 @@
114143
<dependency>
115144
<groupId>net.md-5</groupId>
116145
<artifactId>bungeecord-api</artifactId>
117-
<version>1.16-R0.5-SNAPSHOT</version>
146+
<version>1.20-R0.1-SNAPSHOT</version>
118147
<type>jar</type>
119148
<scope>provided</scope>
120149
</dependency>
150+
<dependency>
151+
<groupId>net.md-5</groupId>
152+
<artifactId>bungeecord-api</artifactId>
153+
<version>1.20-R0.1-SNAPSHOT</version>
154+
<type>javadoc</type>
155+
<scope>provided</scope>
156+
</dependency>
121157

122158
<dependency>
123159
<groupId>org.spigotmc</groupId>
124-
<artifactId>spigot</artifactId>
125-
<version>1.16.5-R0.1-SNAPSHOT</version>
160+
<artifactId>spigot-api</artifactId>
161+
<version>1.20.1-R0.1-SNAPSHOT</version>
126162
<scope>provided</scope>
127163
</dependency>
128164

@@ -133,5 +169,26 @@
133169
<scope>provided</scope>
134170
</dependency>
135171

172+
<dependency>
173+
<groupId>com.tcoded</groupId>
174+
<artifactId>FoliaLib</artifactId>
175+
<version>0.2.4</version>
176+
<scope>compile</scope>
177+
</dependency>
178+
179+
<dependency>
180+
<groupId>io.papermc</groupId>
181+
<artifactId>paperlib</artifactId>
182+
<version>1.0.8</version>
183+
<scope>compile</scope>
184+
</dependency>
185+
186+
<dependency>
187+
<groupId>org.geysermc.floodgate</groupId>
188+
<artifactId>api</artifactId>
189+
<version>2.2.2-SNAPSHOT</version>
190+
<scope>provided</scope>
191+
</dependency>
192+
136193
</dependencies>
137194
</project>

src/main/java/de/sportkanone123/clientdetector/bungeecord/ClientDetectorBungee.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import net.md_5.bungee.api.config.ServerInfo;
2323
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
2424
import net.md_5.bungee.api.event.PluginMessageEvent;
25-
import net.md_5.bungee.api.plugin.Command;
2625
import net.md_5.bungee.api.plugin.Listener;
2726
import net.md_5.bungee.api.plugin.Plugin;
2827
import net.md_5.bungee.event.EventHandler;

src/main/java/de/sportkanone123/clientdetector/spigot/ClientDetector.java

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import com.github.retrooper.packetevents.PacketEvents;
2222
import com.github.retrooper.packetevents.manager.server.ServerVersion;
23+
import com.tcoded.folialib.FoliaLib;
2324
import de.sportkanone123.clientdetector.spigot.bungee.BungeeManager;
2425
import de.sportkanone123.clientdetector.spigot.client.Client;
2526
import de.sportkanone123.clientdetector.spigot.clientcontrol.ClientControl;
@@ -33,10 +34,13 @@
3334
import de.sportkanone123.clientdetector.spigot.manager.*;
3435
import de.sportkanone123.clientdetector.spigot.mod.Mod;
3536
import io.github.retrooper.packetevents.factory.spigot.SpigotPacketEventsBuilder;
37+
import io.papermc.lib.PaperLib;
3638
import org.bukkit.Bukkit;
3739
import org.bukkit.ChatColor;
40+
import org.bukkit.event.HandlerList;
3841
import org.bukkit.plugin.Plugin;
3942
import org.bukkit.plugin.java.JavaPlugin;
43+
import org.geysermc.floodgate.api.FloodgateApi;
4044

4145
import java.io.IOException;
4246
import java.util.ArrayList;
@@ -45,14 +49,18 @@
4549

4650

4751
public class ClientDetector extends JavaPlugin {
52+
4853
public static Plugin plugin;
54+
public static FoliaLib foliaLib;
55+
private static FloodgateApi floodgateApi;
4956
public static ArrayList<Client> CLIENTS = new ArrayList<Client>();
5057
public static ArrayList<Mod> MODS = new ArrayList<Mod>();
5158

5259
public static HashMap<UUID, String> mcVersion = new HashMap<UUID, String>();
5360
public static HashMap<UUID, ModList> forgeMods = new HashMap<UUID, ModList>();
5461
public static HashMap<UUID, String> playerClient = new HashMap<UUID, String> ();
5562
public static HashMap<UUID, String> clientVersion = new HashMap<UUID, String> ();
63+
public static HashMap<UUID, String> connectedBedrockPlayers = new HashMap<>();
5664
public static HashMap<UUID, ArrayList<String>> playerMods = new HashMap<UUID, ArrayList<String>> ();
5765
public static HashMap<UUID, ArrayList<String>> playerLabymodMods = new HashMap<UUID, ArrayList<String>> ();
5866
public static HashMap<UUID, ArrayList<String>> playerCommandsQueue = new HashMap<UUID, ArrayList<String>>();
@@ -71,11 +79,16 @@ public void onLoad() {
7179
@Override
7280
public void onEnable() {
7381
plugin = this;
82+
foliaLib = new FoliaLib((JavaPlugin) plugin);
83+
84+
if (foliaLib.isSpigot()||foliaLib.isUnsupported()){
85+
PaperLib.suggestPaper(this);
86+
}
7487

7588
new MetricsManager(this, 10745);
7689

77-
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aVersion&7) &aDetected Version &c" + PacketEvents.getAPI().getServerManager().getVersion().name()));
78-
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aVersion&7) &aLoading settings for Version &c" + PacketEvents.getAPI().getServerManager().getVersion().name()));
90+
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aVersion&7) &aDetected Version &c" + Bukkit.getVersion()));
91+
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aVersion&7) &aLoading settings for Version &c" + Bukkit.getVersion()));
7992

8093
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aProtocol&7) &aLoading protocols..."));
8194
PacketEvents.getAPI().getEventManager().registerListener(new NetworkListener());
@@ -125,6 +138,11 @@ public void onEnable() {
125138
bungeeManager = new BungeeManager();
126139
}
127140

141+
if (Bukkit.getServer().getPluginManager().isPluginEnabled("floodgate")||isFloodgateEnabled()){
142+
floodgateApi = FloodgateApi.getInstance();
143+
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aFloodgateAPI&7) &aDetected FloodgateAPI " + Bukkit.getPluginManager().getPlugin("floodgate").getDescription().getVersion()));
144+
}
145+
128146
if(Bukkit.getServer().getPluginManager().isPluginEnabled("ViaVersion")){
129147
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aViaVersion&7) &aDetected ViaVersion " + Bukkit.getPluginManager().getPlugin("ViaVersion").getDescription().getVersion()));
130148
}
@@ -166,5 +184,26 @@ public void onDisable() {
166184

167185
ClientManager.unLoad();
168186
ModManager.unLoad();
187+
188+
HandlerList.unregisterAll(this);
189+
190+
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] &aShutdown complete!"));
191+
}
192+
193+
public boolean isFloodgateEnabled() {
194+
try {
195+
Class.forName("org.geysermc.floodgate.api.FloodgateApi");
196+
return true;
197+
} catch (ClassNotFoundException e) {
198+
return false;
199+
}
200+
}
201+
202+
public static FloodgateApi getFloodgateApi() {
203+
return floodgateApi;
204+
}
205+
206+
public static FoliaLib getFoliaLib() {
207+
return foliaLib;
169208
}
170209
}

src/main/java/de/sportkanone123/clientdetector/spigot/api/ClientDetectorAPI.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@
2323
import org.bukkit.entity.Player;
2424

2525
import java.util.ArrayList;
26-
import java.util.HashMap;
2726
import java.util.List;
28-
import java.util.Map;
2927

3028
public class ClientDetectorAPI {
3129
public static String getPlayerClient(Player player){

0 commit comments

Comments
 (0)