mirror of
https://github.com/GeyserMC/Floodgate.git
synced 2026-01-06 15:42:03 +00:00
Final classes; implement join message
This commit is contained in:
@@ -26,6 +26,7 @@ dependencies {
|
||||
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
|
||||
// You may need to force-disable transitiveness on them.
|
||||
|
||||
// Base Floodgate
|
||||
include(implementation("org.geysermc.floodgate:common:2.0-SNAPSHOT"))
|
||||
|
||||
// Cloud - commands
|
||||
@@ -35,6 +36,8 @@ dependencies {
|
||||
// Fabric Adventure platform
|
||||
// For translating from Adventure to Minecraft
|
||||
include(modImplementation('net.kyori:adventure-platform-fabric:4.0.0-SNAPSHOT') {
|
||||
// Thanks to zml for this fix
|
||||
// The package modifies Brigadier which causes a LinkageError at runtime if included
|
||||
exclude group: 'ca.stellardrift', module: "colonel"
|
||||
})
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package org.geysermc.floodgate;
|
||||
|
||||
import org.geysermc.floodgate.inject.fabric.FabricInjector;
|
||||
import org.geysermc.floodgate.module.FabricAddonModule;
|
||||
import org.geysermc.floodgate.module.FabricCommandModule;
|
||||
import org.geysermc.floodgate.module.FabricPlatformModule;
|
||||
import com.google.inject.Guice;
|
||||
import com.google.inject.Injector;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
@@ -12,6 +9,10 @@ import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.kyori.adventure.platform.fabric.FabricServerAudiences;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import org.geysermc.floodgate.api.logger.FloodgateLogger;
|
||||
import org.geysermc.floodgate.module.FabricAddonModule;
|
||||
import org.geysermc.floodgate.module.FabricCommandModule;
|
||||
import org.geysermc.floodgate.module.FabricListenerModule;
|
||||
import org.geysermc.floodgate.module.FabricPlatformModule;
|
||||
import org.geysermc.floodgate.module.ServerCommonModule;
|
||||
|
||||
public class FabricMod implements ModInitializer {
|
||||
@@ -35,7 +36,8 @@ public class FabricMod implements ModInitializer {
|
||||
injector.getInstance(FabricPlatform.class)
|
||||
.enable(
|
||||
new FabricAddonModule(),
|
||||
new FabricCommandModule()
|
||||
new FabricCommandModule(),
|
||||
new FabricListenerModule()
|
||||
);
|
||||
|
||||
long endCtm = System.currentTimeMillis();
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.geysermc.floodgate.api.FloodgateApi;
|
||||
import org.geysermc.floodgate.api.inject.PlatformInjector;
|
||||
import org.geysermc.floodgate.api.logger.FloodgateLogger;
|
||||
|
||||
public class FabricPlatform extends FloodgatePlatform {
|
||||
public final class FabricPlatform extends FloodgatePlatform {
|
||||
@Inject
|
||||
public FabricPlatform(FloodgateApi api, PlatformInjector platformInjector, FloodgateLogger logger, Injector guice) {
|
||||
super(api, platformInjector, logger, guice);
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.geysermc.floodgate.config.FloodgateConfig;
|
||||
import org.geysermc.floodgate.player.FloodgateHandshakeHandler;
|
||||
import org.geysermc.floodgate.util.Utils;
|
||||
|
||||
public class FabricDataAddon implements InjectorAddon {
|
||||
public final class FabricDataAddon implements InjectorAddon {
|
||||
@Inject private FloodgateHandshakeHandler handshakeHandler;
|
||||
@Inject private FloodgateConfig config;
|
||||
@Inject private SimpleFloodgateApi api;
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.geysermc.floodgate.util.BedrockData;
|
||||
import org.geysermc.floodgate.util.Constants;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class FabricDataHandler extends ChannelInboundHandlerAdapter {
|
||||
public final class FabricDataHandler extends ChannelInboundHandlerAdapter {
|
||||
private final FloodgateConfig config;
|
||||
private final FloodgateHandshakeHandler handshakeHandler;
|
||||
private final FloodgateLogger logger;
|
||||
|
||||
@@ -6,7 +6,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.geysermc.floodgate.inject.CommonPlatformInjector;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class FabricInjector extends CommonPlatformInjector {
|
||||
public final class FabricInjector extends CommonPlatformInjector {
|
||||
private static FabricInjector instance;
|
||||
|
||||
@Getter private final boolean injected = true;
|
||||
|
||||
@@ -1,12 +1,29 @@
|
||||
package org.geysermc.floodgate.listener;
|
||||
|
||||
public class FabricEventListener {
|
||||
import com.google.inject.Inject;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketSender;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.network.ServerPlayNetworkHandler;
|
||||
import org.geysermc.floodgate.api.FloodgateApi;
|
||||
import org.geysermc.floodgate.api.logger.FloodgateLogger;
|
||||
import org.geysermc.floodgate.api.player.FloodgatePlayer;
|
||||
import org.geysermc.floodgate.player.FloodgatePlayerImpl;
|
||||
import org.geysermc.floodgate.util.LanguageManager;
|
||||
|
||||
public void onPlayerJoin() {
|
||||
public final class FabricEventListener {
|
||||
@Inject private FloodgateApi api;
|
||||
@Inject private FloodgateLogger logger;
|
||||
@Inject private LanguageManager languageManager;
|
||||
|
||||
}
|
||||
|
||||
public void onPlayerQuit() {
|
||||
//todo
|
||||
public void onPlayerJoin(ServerPlayNetworkHandler networkHandler, PacketSender packetSender, MinecraftServer server) {
|
||||
FloodgatePlayer player = api.getPlayer(networkHandler.player.getUuid());
|
||||
if (player != null) {
|
||||
player.as(FloodgatePlayerImpl.class).setLogin(false);
|
||||
logger.translatedInfo(
|
||||
"floodgate.ingame.login_name",
|
||||
player.getCorrectUsername(), player.getCorrectUniqueId()
|
||||
);
|
||||
languageManager.loadLocale(player.getLanguageCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package org.geysermc.floodgate.listener;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
|
||||
import org.geysermc.floodgate.platform.listener.ListenerRegistration;
|
||||
|
||||
@RequiredArgsConstructor(onConstructor = @__(@Inject))
|
||||
public final class FabricEventRegistration implements ListenerRegistration<FabricEventListener> {
|
||||
@Override
|
||||
public void register(FabricEventListener listener) {
|
||||
ServerPlayConnectionEvents.JOIN.register(listener::onPlayerJoin);
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import org.geysermc.floodgate.util.LanguageManager;
|
||||
import static org.geysermc.floodgate.util.MessageFormatter.format;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class Log4jFloodgateLogger implements FloodgateLogger {
|
||||
public final class Log4jFloodgateLogger implements FloodgateLogger {
|
||||
private final Logger logger;
|
||||
private final LanguageManager languageManager;
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.net.InetAddress;
|
||||
import java.util.List;
|
||||
|
||||
@Mixin(ServerNetworkIo.class)
|
||||
public class ServerNetworkIoMixin {
|
||||
public abstract class ServerNetworkIoMixin {
|
||||
|
||||
@Shadow @Final private List<ChannelFuture> channels;
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.geysermc.floodgate.addon.DebugAddon;
|
||||
import org.geysermc.floodgate.api.inject.InjectorAddon;
|
||||
import org.geysermc.floodgate.register.AddonRegister;
|
||||
|
||||
public class FabricAddonModule extends AbstractModule {
|
||||
public final class FabricAddonModule extends AbstractModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(AddonRegister.class).asEagerSingleton();
|
||||
|
||||
@@ -8,12 +8,11 @@ import com.google.inject.Provides;
|
||||
import com.google.inject.Singleton;
|
||||
import lombok.SneakyThrows;
|
||||
import net.minecraft.server.command.ServerCommandSource;
|
||||
import org.geysermc.floodgate.module.CommandModule;
|
||||
import org.geysermc.floodgate.platform.command.CommandUtil;
|
||||
import org.geysermc.floodgate.player.FloodgateCommandPreprocessor;
|
||||
import org.geysermc.floodgate.player.UserAudience;
|
||||
|
||||
public class FabricCommandModule extends CommandModule {
|
||||
public final class FabricCommandModule extends CommandModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
@SneakyThrows
|
||||
|
||||
@@ -1,6 +1,21 @@
|
||||
package org.geysermc.floodgate.module;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.Singleton;
|
||||
import com.google.inject.TypeLiteral;
|
||||
import com.google.inject.multibindings.ProvidesIntoSet;
|
||||
import org.geysermc.floodgate.listener.FabricEventListener;
|
||||
import org.geysermc.floodgate.register.ListenerRegister;
|
||||
|
||||
public class FabricListenerModule extends AbstractModule {
|
||||
public final class FabricListenerModule extends AbstractModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(new TypeLiteral<ListenerRegister<FabricEventListener>>() {}).asEagerSingleton();
|
||||
}
|
||||
|
||||
@Singleton
|
||||
@ProvidesIntoSet
|
||||
public FabricEventListener fabricEventListener() {
|
||||
return new FabricEventListener();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package org.geysermc.floodgate.module;
|
||||
|
||||
import org.geysermc.floodgate.inject.fabric.FabricInjector;
|
||||
import org.geysermc.floodgate.listener.FabricEventListener;
|
||||
import org.geysermc.floodgate.listener.FabricEventRegistration;
|
||||
import org.geysermc.floodgate.logger.Log4jFloodgateLogger;
|
||||
import org.geysermc.floodgate.platform.listener.ListenerRegistration;
|
||||
import org.geysermc.floodgate.pluginmessage.FabricSkinApplier;
|
||||
import org.geysermc.floodgate.util.FabricCommandUtil;
|
||||
import com.google.inject.AbstractModule;
|
||||
@@ -20,7 +23,7 @@ import org.geysermc.floodgate.skin.SkinApplier;
|
||||
import org.geysermc.floodgate.util.LanguageManager;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class FabricPlatformModule extends AbstractModule {
|
||||
public final class FabricPlatformModule extends AbstractModule {
|
||||
private final MinecraftServer server;
|
||||
private final FabricServerAudiences adventure;
|
||||
|
||||
@@ -51,6 +54,12 @@ public class FabricPlatformModule extends AbstractModule {
|
||||
return new FabricCommandUtil(adventure, api, logger, languageManager, server);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
public ListenerRegistration<FabricEventListener> listenerRegistration() {
|
||||
return new FabricEventRegistration();
|
||||
}
|
||||
|
||||
/*
|
||||
DebugAddon / PlatformInjector
|
||||
*/
|
||||
|
||||
@@ -13,7 +13,7 @@ import org.geysermc.floodgate.api.player.FloodgatePlayer;
|
||||
import org.geysermc.floodgate.skin.SkinApplier;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class FabricSkinApplier implements SkinApplier {
|
||||
public final class FabricSkinApplier implements SkinApplier {
|
||||
private final MinecraftServer server;
|
||||
|
||||
@Override
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.geysermc.floodgate.player.UserAudienceArgument;
|
||||
import java.util.*;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class FabricCommandUtil implements CommandUtil {
|
||||
public final class FabricCommandUtil implements CommandUtil {
|
||||
@Getter private final FabricServerAudiences adventure;
|
||||
@Getter private final FloodgateApi api;
|
||||
@Getter private final FloodgateLogger logger;
|
||||
|
||||
@@ -15,7 +15,7 @@ import org.geysermc.floodgate.player.UserAudience;
|
||||
import java.util.UUID;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class FabricUserAudience implements UserAudience, ForwardingAudience.Single {
|
||||
public final class FabricUserAudience implements UserAudience, ForwardingAudience.Single {
|
||||
private final UUID uuid;
|
||||
private final String locale;
|
||||
private final ServerCommandSource source;
|
||||
|
||||
Reference in New Issue
Block a user