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

Commit

Permalink
Updated GitHub repository. Added ClassCastException check to ForgeHan…
Browse files Browse the repository at this point in the history
…dshake.sendModList method. Added Bungee component startup message. Added Velocity component startup message. Changed plugin version to `2.5.7`.
  • Loading branch information
BuildTools committed Jun 24, 2023
1 parent 511e6c1 commit bc5299b
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package de.sportkanone123.clientdetector.bungeecord;

import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
Expand All @@ -43,6 +44,13 @@ public void onEnable() {
ProxyServer.getInstance().registerChannel("cd:bungee");

runQueue();

plugin.getLogger().info(ChatColor.translateAlternateColorCodes('&', "&7-----------------------------------------"));
plugin.getLogger().info(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aVersion&7) &aDetected Version &c" + ProxyServer.getInstance().getVersion()));
plugin.getLogger().info(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aDetection&7) &aLoading Bungee adapter..."));
plugin.getLogger().info(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aDetection&7) &aRegistering plugin messaging channels..."));
plugin.getLogger().info(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] &aStarted!"));
plugin.getLogger().info(ChatColor.translateAlternateColorCodes('&', "&7-----------------------------------------"));
}

public void runQueue() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
import com.github.retrooper.packetevents.manager.server.ServerVersion;
import com.github.retrooper.packetevents.protocol.player.ClientVersion;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerPluginMessage;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;

public class ForgeHandshake {
Expand Down Expand Up @@ -69,10 +71,14 @@ public static void sendHandshakeReset(Player player, String channel){
}

public static void sendHandshake(Player player){
if(PacketEvents.getAPI().getServerManager().getVersion().isOlderThanOrEquals(ServerVersion.V_1_12_2) && (PacketEvents.getAPI().getPlayerManager().getClientVersion(player).isNewerThanOrEquals(ClientVersion.V_1_8) && PacketEvents.getAPI().getPlayerManager().getClientVersion(player).isOlderThanOrEquals(ClientVersion.V_1_12_2))){
sendHandshakeReset(player, "FML|HS");
sendServerHello(player, "FML|HS");
sendModList(player, "FML|HS");
try {
if(PacketEvents.getAPI().getServerManager().getVersion().isOlderThanOrEquals(ServerVersion.V_1_12_2) && (PacketEvents.getAPI().getPlayerManager().getClientVersion(player).isNewerThanOrEquals(ClientVersion.V_1_8) && PacketEvents.getAPI().getPlayerManager().getClientVersion(player).isOlderThanOrEquals(ClientVersion.V_1_12_2))){
sendHandshakeReset(player, "FML|HS");
sendServerHello(player, "FML|HS");
sendModList(player, "FML|HS");
}
}catch (ClassCastException e){
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] &4(ERROR) &aClassCastException thrown while getting forge mod list from connecting player. This error is harmless and safe to ignore :)"));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,17 @@

import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.wrapper.login.server.WrapperLoginServerPluginRequest;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;

public class ForgeHandshake {
public static void sendModList(Object channel){

WrapperLoginServerPluginRequest wrappedPacketLoginOutCustomPayload = new WrapperLoginServerPluginRequest(/*Random ID*/111111, "fml:handshake", new byte[] { 1, 0, 0, 0 });
PacketEvents.getAPI().getPlayerManager().sendPacket(channel, wrappedPacketLoginOutCustomPayload);

try {
WrapperLoginServerPluginRequest wrappedPacketLoginOutCustomPayload = new WrapperLoginServerPluginRequest(/*Random ID*/111111, "fml:handshake", new byte[] { 1, 0, 0, 0 });
PacketEvents.getAPI().getPlayerManager().sendPacket(channel, wrappedPacketLoginOutCustomPayload);
}catch (ClassCastException e){
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] &4(ERROR) &aClassCastException thrown while getting forge mod list from connecting player. This error is harmless and safe to ignore :)"));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.velocitypowered.api.proxy.messages.LegacyChannelIdentifier;
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import net.md_5.bungee.api.ChatColor;

import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
Expand Down Expand Up @@ -51,6 +52,13 @@ public void onProxyInitialization(ProxyInitializeEvent event) {
this.server.getChannelRegistrar().register(LEGACY_BUNGEE_CHANNEL, MODERN_BUNGEE_CHANNEL);

runQueue();

logger.info(ChatColor.translateAlternateColorCodes('&', "&7-----------------------------------------"));
logger.info(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aVersion&7) &aDetected Version &c" + server.getVersion()));
logger.info(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aDetection&7) &aLoading Velocity adapter..."));
logger.info(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] (&aDetection&7) &aRegistering plugin messaging channels..."));
logger.info(ChatColor.translateAlternateColorCodes('&', "&7[&3ClientDetector&7] &aStarted!"));
logger.info(ChatColor.translateAlternateColorCodes('&', "&7-----------------------------------------"));
}

public void runQueue() {
Expand All @@ -73,7 +81,7 @@ public void run() {

@Subscribe
public void onPluginMessage(PluginMessageEvent event) {
System.out.println(event.getIdentifier() + " // " + new java.lang.String(event.getData()));
logger.info(event.getIdentifier() + " // " + new java.lang.String(event.getData()));
if (event.getIdentifier().getId().equalsIgnoreCase("cd:bungee")) {
sync(event.getData());
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/bungee.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: ClientDetector
version: 2.5.7
author: Sportkanone123
author: Loving11ish
main: de.sportkanone123.clientdetector.bungeecord.ClientDetectorBungee
description: A simple plugin to detect and manage a player's client/mods

0 comments on commit bc5299b

Please sign in to comment.