Add config option for turning off login payloads
This commit is contained in:
parent
32bab36731
commit
aa913b48e6
@ -247,6 +247,9 @@ public class DisguiseConfig {
|
|||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
private static boolean randomDisguises;
|
private static boolean randomDisguises;
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private static boolean loginPayloadPackets;
|
||||||
|
|
||||||
public static boolean isArmorstandsName() {
|
public static boolean isArmorstandsName() {
|
||||||
return getPlayerNameType() == PlayerNameType.ARMORSTANDS;
|
return getPlayerNameType() == PlayerNameType.ARMORSTANDS;
|
||||||
@ -632,6 +635,7 @@ public class DisguiseConfig {
|
|||||||
setMaxClonedDisguises(config.getInt("DisguiseCloneSize"));
|
setMaxClonedDisguises(config.getInt("DisguiseCloneSize"));
|
||||||
setMaxHealthDeterminedByDisguisedEntity(config.getBoolean("MaxHealthDeterminedByEntity"));
|
setMaxHealthDeterminedByDisguisedEntity(config.getBoolean("MaxHealthDeterminedByEntity"));
|
||||||
setMetaPacketsEnabled(config.getBoolean("PacketsEnabled.Metadata"));
|
setMetaPacketsEnabled(config.getBoolean("PacketsEnabled.Metadata"));
|
||||||
|
setLoginPayloadPackets(config.getBoolean("PacketsEnabled.LoginPayload"));
|
||||||
setMiscDisguisesForLivingEnabled(config.getBoolean("MiscDisguisesForLiving"));
|
setMiscDisguisesForLivingEnabled(config.getBoolean("MiscDisguisesForLiving"));
|
||||||
setModifyBoundingBox(config.getBoolean("ModifyBoundingBox"));
|
setModifyBoundingBox(config.getBoolean("ModifyBoundingBox"));
|
||||||
setModifyCollisions(config.getBoolean("Scoreboard.Collisions"));
|
setModifyCollisions(config.getBoolean("Scoreboard.Collisions"));
|
||||||
|
@ -18,27 +18,6 @@ import java.util.ArrayList;
|
|||||||
public class ModdedListener implements Listener {
|
public class ModdedListener implements Listener {
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onLogin(PlayerLoginEvent event) {
|
public void onLogin(PlayerLoginEvent event) {
|
||||||
Player player = event.getPlayer();
|
ModdedManager.doMods(event.getPlayer());
|
||||||
|
|
||||||
ArrayList<String> mods = ModdedManager.getForgeMods().getIfPresent(player.getName());
|
|
||||||
|
|
||||||
player.setMetadata("forge_mods", new FixedMetadataValue(LibsDisguises.getInstance(), mods));
|
|
||||||
|
|
||||||
for (ModdedEntity e : ModdedManager.getEntities().values()) {
|
|
||||||
if (e.getMod() == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mods.contains(e.getMod().toLowerCase())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e.getRequired() == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
player.kickPlayer(e.getRequired());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import com.comphenix.protocol.utility.StreamSerializer;
|
|||||||
import com.google.common.cache.Cache;
|
import com.google.common.cache.Cache;
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import me.libraryaddict.disguise.DisguiseConfig;
|
||||||
import me.libraryaddict.disguise.LibsDisguises;
|
import me.libraryaddict.disguise.LibsDisguises;
|
||||||
import me.libraryaddict.disguise.disguisetypes.DisguiseType;
|
import me.libraryaddict.disguise.disguisetypes.DisguiseType;
|
||||||
import me.libraryaddict.disguise.utilities.listeners.ModdedListener;
|
import me.libraryaddict.disguise.utilities.listeners.ModdedListener;
|
||||||
@ -13,6 +14,8 @@ import me.libraryaddict.disguise.utilities.parser.DisguisePerm;
|
|||||||
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
@ -41,11 +44,15 @@ public class ModdedManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fmlRegistries == null) {
|
if (fmlRegistries == null && DisguiseConfig.isLoginPayloadPackets()) {
|
||||||
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketListenerModdedClient());
|
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketListenerModdedClient());
|
||||||
Bukkit.getPluginManager().registerEvents(new ModdedListener(), LibsDisguises.getInstance());
|
Bukkit.getPluginManager().registerEvents(new ModdedListener(), LibsDisguises.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
createPayloads(channels);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createPayloads(ArrayList<String> channels) {
|
||||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||||
DataOutputStream output = new DataOutputStream(stream);
|
DataOutputStream output = new DataOutputStream(stream);
|
||||||
|
|
||||||
@ -163,6 +170,29 @@ public class ModdedManager {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void doMods(Player player) {
|
||||||
|
ArrayList<String> mods = getForgeMods().getIfPresent(player.getName());
|
||||||
|
|
||||||
|
player.setMetadata("forge_mods", new FixedMetadataValue(LibsDisguises.getInstance(), mods));
|
||||||
|
|
||||||
|
for (ModdedEntity e : ModdedManager.getEntities().values()) {
|
||||||
|
if (e.getMod() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mods.contains(e.getMod().toLowerCase())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.getRequired() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.kickPlayer(e.getRequired());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static ArrayList<DisguisePerm> getDisguiseTypes() {
|
public static ArrayList<DisguisePerm> getDisguiseTypes() {
|
||||||
ArrayList<DisguisePerm> perms = new ArrayList<>();
|
ArrayList<DisguisePerm> perms = new ArrayList<>();
|
||||||
|
|
||||||
|
@ -319,6 +319,9 @@ PacketsEnabled:
|
|||||||
Riding: true
|
Riding: true
|
||||||
# When disguised as a wither skull, it sends a look packet every tick so that the wither skull is facing the right way.
|
# When disguised as a wither skull, it sends a look packet every tick so that the wither skull is facing the right way.
|
||||||
WitherSkull: true
|
WitherSkull: true
|
||||||
|
# This is only used when using a modded disguises thingy, check disguises.yml for more info
|
||||||
|
# This is used as a hack to bypass bungeecord issues
|
||||||
|
LoginPayload: true
|
||||||
|
|
||||||
# Added to support a Chinese Minecraft Server which uses their own skin server unless the UUID is not version 4.
|
# Added to support a Chinese Minecraft Server which uses their own skin server unless the UUID is not version 4.
|
||||||
# Changing this from 4 to say, 3. Means their server will fetch skins from Mojang instead.
|
# Changing this from 4 to say, 3. Means their server will fetch skins from Mojang instead.
|
||||||
|
Loading…
Reference in New Issue
Block a user