mirror of
https://github.com/ViaVersion/ViaForge.git
synced 2025-03-11 13:21:24 +01:00
Added config to save selected protocol version and to disable ViaForge button + javadoc
This commit is contained in:
parent
9f4c642b5a
commit
04f297e1bb
@ -20,6 +20,8 @@ package de.florianmichael.viaforge.common;
|
||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||
import com.viaversion.viaversion.connection.UserConnectionImpl;
|
||||
import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import de.florianmichael.viaforge.common.platform.ViaForgeConfig;
|
||||
import de.florianmichael.viaforge.common.protocolhack.ViaForgeVLInjector;
|
||||
import de.florianmichael.viaforge.common.protocolhack.ViaForgeVLLegacyPipeline;
|
||||
import de.florianmichael.viaforge.common.protocolhack.ViaForgeVLLoader;
|
||||
@ -28,20 +30,34 @@ import io.netty.channel.socket.SocketChannel;
|
||||
import net.raphimc.vialoader.ViaLoader;
|
||||
import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
|
||||
import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
|
||||
import net.raphimc.vialoader.impl.platform.ViaVersionPlatformImpl;
|
||||
import net.raphimc.vialoader.netty.CompressionReorderEvent;
|
||||
import net.raphimc.vialoader.util.VersionEnum;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* This class is used to manage the common code between the different ViaForge versions.
|
||||
* It is used to inject the ViaVersion pipeline into the netty pipeline. It also manages the target version.
|
||||
*/
|
||||
public class ViaForgeCommon {
|
||||
private static ViaForgeCommon manager;
|
||||
|
||||
private final PlatformFields platform;
|
||||
private final VFPlatform platform;
|
||||
private VersionEnum targetVersion;
|
||||
|
||||
public ViaForgeCommon(PlatformFields platform) {
|
||||
private ViaForgeConfig config;
|
||||
|
||||
public ViaForgeCommon(VFPlatform platform) {
|
||||
this.platform = platform;
|
||||
}
|
||||
|
||||
public static void init(final PlatformFields platform) {
|
||||
/**
|
||||
* Initializes the manager.
|
||||
*
|
||||
* @param platform the platform fields
|
||||
*/
|
||||
public static void init(final VFPlatform platform) {
|
||||
if (manager != null) {
|
||||
return; // Already initialized, ignore it then :tm:
|
||||
}
|
||||
@ -51,11 +67,25 @@ public class ViaForgeCommon {
|
||||
}
|
||||
|
||||
manager = new ViaForgeCommon(platform);
|
||||
manager.setTargetVersion(version);
|
||||
|
||||
ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
|
||||
final File mainFolder = new File(platform.getLeadingDirectory(), "ViaForge");
|
||||
|
||||
ViaLoader.init(new ViaVersionPlatformImpl(mainFolder), new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
|
||||
manager.config = new ViaForgeConfig(new File(mainFolder, "viaforge.yml"));
|
||||
|
||||
final VersionEnum configVersion = VersionEnum.fromProtocolId(manager.config.getClientSideVersion());
|
||||
if (configVersion != VersionEnum.UNKNOWN) {
|
||||
manager.setTargetVersion(configVersion);
|
||||
} else {
|
||||
manager.setTargetVersion(version);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Injects the ViaVersion pipeline into the netty pipeline.
|
||||
*
|
||||
* @param channel the channel to inject the pipeline into
|
||||
*/
|
||||
public void inject(final Channel channel) {
|
||||
if (channel instanceof SocketChannel && targetVersion != getNativeVersion()) {
|
||||
final UserConnection user = new UserConnectionImpl(channel, true);
|
||||
@ -65,6 +95,11 @@ public class ViaForgeCommon {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reorders the compression channel.
|
||||
*
|
||||
* @param channel the channel to reorder the compression for
|
||||
*/
|
||||
public void reorderCompression(final Channel channel) {
|
||||
channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
|
||||
}
|
||||
@ -79,12 +114,17 @@ public class ViaForgeCommon {
|
||||
|
||||
public void setTargetVersion(VersionEnum targetVersion) {
|
||||
this.targetVersion = targetVersion;
|
||||
config.setClientSideVersion(targetVersion.getVersion());
|
||||
}
|
||||
|
||||
public PlatformFields getPlatform() {
|
||||
public VFPlatform getPlatform() {
|
||||
return platform;
|
||||
}
|
||||
|
||||
public ViaForgeConfig getConfig() {
|
||||
return config;
|
||||
}
|
||||
|
||||
public static ViaForgeCommon getManager() {
|
||||
return manager;
|
||||
}
|
||||
|
@ -15,13 +15,28 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package de.florianmichael.viaforge.common;
|
||||
package de.florianmichael.viaforge.common.platform;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public interface PlatformFields {
|
||||
/**
|
||||
* This interface is used to access platform specific fields.
|
||||
*/
|
||||
public interface VFPlatform {
|
||||
|
||||
/**
|
||||
* @return the native version of the platform
|
||||
*/
|
||||
int getGameVersion();
|
||||
|
||||
/**
|
||||
* @return if the client is in singleplayer
|
||||
*/
|
||||
Supplier<Boolean> isSingleplayer();
|
||||
|
||||
/**
|
||||
* @return the leading directory of the platform
|
||||
*/
|
||||
File getLeadingDirectory();
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package de.florianmichael.viaforge.common.platform;
|
||||
|
||||
import com.viaversion.viaversion.util.Config;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class ViaForgeConfig extends Config {
|
||||
public final static String CLIENT_SIDE_VERSION = "client-side-version";
|
||||
|
||||
public final static String SHOW_MAIN_MENU_BUTTON = "show-main-menu-button";
|
||||
public final static String SHOW_MULTIPLAYER_BUTTON = "show-multiplayer-button";
|
||||
public final static String SHOW_DIRECT_CONNECT_BUTTON = "show-direct-connect-button";
|
||||
|
||||
/**
|
||||
* @param configFile The location of where the config is loaded/saved.
|
||||
*/
|
||||
public ViaForgeConfig(File configFile) {
|
||||
super(configFile);
|
||||
reload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public URL getDefaultConfigURL() {
|
||||
return getClass().getClassLoader().getResource("assets/viaforge/config.yml");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleConfig(Map<String, Object> config) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getUnsupportedOptions() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public int getClientSideVersion() {
|
||||
return getInt(CLIENT_SIDE_VERSION, 0);
|
||||
}
|
||||
|
||||
public void setClientSideVersion(final int version) {
|
||||
set(CLIENT_SIDE_VERSION, version);
|
||||
save();
|
||||
}
|
||||
|
||||
public boolean isShowMainMenuButton() {
|
||||
return getBoolean(SHOW_MAIN_MENU_BUTTON, true);
|
||||
}
|
||||
|
||||
public boolean isShowMultiplayerButton() {
|
||||
return getBoolean(SHOW_MULTIPLAYER_BUTTON, true);
|
||||
}
|
||||
|
||||
public boolean isShowDirectConnectButton() {
|
||||
return getBoolean(SHOW_DIRECT_CONNECT_BUTTON, true);
|
||||
}
|
||||
}
|
14
src/main/resources/assets/viaforge/config.yml
Normal file
14
src/main/resources/assets/viaforge/config.yml
Normal file
@ -0,0 +1,14 @@
|
||||
# Disclaimer:
|
||||
# It cannot be guaranteed that this mod is allowed on specific servers as it can possibly cause problems with anti-cheat plugins, (USE ONLY WITH CAUTION!)
|
||||
#
|
||||
# This option sets the protocol version to be used when connecting to servers. (can also be changed in-game)
|
||||
client-side-version: -1
|
||||
#
|
||||
# This option indicates if the ViaForge button should be shown in the main menu.
|
||||
show-main-menu-button: true
|
||||
#
|
||||
# This option indicates if the ViaForge button should be shown in the multiplayer.
|
||||
show-multiplayer-button: true
|
||||
#
|
||||
# This option indicates if the ViaForge button should be shown in the direct connect screen.
|
||||
show-direct-connect-button: true
|
@ -17,13 +17,16 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge;
|
||||
|
||||
import de.florianmichael.viaforge.common.PlatformFields;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.realms.RealmsSharedConstants;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ViaForge112 implements PlatformFields {
|
||||
@Mod(modid = "viaforge")
|
||||
public class ViaForge112 implements VFPlatform {
|
||||
public final static ViaForge112 PLATFORM = new ViaForge112();
|
||||
|
||||
@Override
|
||||
@ -35,4 +38,9 @@ public class ViaForge112 implements PlatformFields {
|
||||
public Supplier<Boolean> isSingleplayer() {
|
||||
return () -> Minecraft.getMinecraft().isSingleplayer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getLeadingDirectory() {
|
||||
return Minecraft.getMinecraft().gameDir;
|
||||
}
|
||||
}
|
||||
|
@ -31,15 +31,19 @@ public class MixinGuiMainMenu extends GuiScreen {
|
||||
|
||||
@Inject(method = "initGui", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
buttonList.add(new GuiButton(1337, 5, 6, 98, 20, "ViaForge"));
|
||||
|
||||
ViaForgeCommon.init(ViaForge112.PLATFORM);
|
||||
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
buttonList.add(new GuiButton(1_000_000_000, 5, 6, 98, 20, "ViaForge"));
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "actionPerformed", at = @At("RETURN"))
|
||||
public void handleViaForgeButtonClicking(GuiButton p_actionPerformed_1_, CallbackInfo ci) {
|
||||
if (p_actionPerformed_1_.id == 1337) {
|
||||
mc.displayGuiScreen(new GuiProtocolSelector(this));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
if (p_actionPerformed_1_.id == 1_000_000_000) {
|
||||
mc.displayGuiScreen(new GuiProtocolSelector(this));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge.mixin.impl;
|
||||
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiMultiplayer;
|
||||
@ -31,13 +32,17 @@ public class MixinGuiMultiplayer extends GuiScreen {
|
||||
|
||||
@Inject(method = "initGui", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
buttonList.add(new GuiButton(1337, 5, 6, 98, 20, "ViaForge"));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
buttonList.add(new GuiButton(1_000_000_000, 5, 6, 98, 20, "ViaForge"));
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "actionPerformed", at = @At("RETURN"))
|
||||
public void handleViaForgeButtonClicking(GuiButton p_actionPerformed_1_, CallbackInfo ci) {
|
||||
if (p_actionPerformed_1_.id == 1337) {
|
||||
mc.displayGuiScreen(new GuiProtocolSelector(this));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
if (p_actionPerformed_1_.id == 1_000_000_000) {
|
||||
mc.displayGuiScreen(new GuiProtocolSelector(this));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge.mixin.impl;
|
||||
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
@ -31,13 +32,17 @@ public class MixinGuiScreenServerList extends GuiScreen {
|
||||
|
||||
@Inject(method = "initGui", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
buttonList.add(new GuiButton(1337, 5, 6, 98, 20, "ViaForge"));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
buttonList.add(new GuiButton(1_000_000_000, 5, 6, 98, 20, "ViaForge"));
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "actionPerformed", at = @At("RETURN"))
|
||||
public void handleViaForgeButtonClicking(GuiButton p_actionPerformed_1_, CallbackInfo ci) {
|
||||
if (p_actionPerformed_1_.id == 1337) {
|
||||
mc.displayGuiScreen(new GuiProtocolSelector(this));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
if (p_actionPerformed_1_.id == 1_000_000_000) {
|
||||
mc.displayGuiScreen(new GuiProtocolSelector(this));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,15 +17,16 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge;
|
||||
|
||||
import de.florianmichael.viaforge.common.PlatformFields;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.SharedConstants;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mod("viaforge")
|
||||
public class ViaForge114 implements PlatformFields {
|
||||
public class ViaForge114 implements VFPlatform {
|
||||
public final static ViaForge114 PLATFORM = new ViaForge114();
|
||||
|
||||
@Override
|
||||
@ -37,4 +38,9 @@ public class ViaForge114 implements PlatformFields {
|
||||
public Supplier<Boolean> isSingleplayer() {
|
||||
return () -> Minecraft.getInstance().hasSingleplayerServer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getLeadingDirectory() {
|
||||
return Minecraft.getInstance().gameDirectory;
|
||||
}
|
||||
}
|
||||
|
@ -38,8 +38,10 @@ public class MixinMainMenuScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("HEAD"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
|
||||
ViaForgeCommon.init(ViaForge114.PLATFORM);
|
||||
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge114;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.screen.MultiplayerScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
@ -37,6 +38,8 @@ public class MixinMultiplayerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
addButton(new Button(5, 6, 98, 20, "ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.ServerListScreen;
|
||||
@ -36,6 +37,8 @@ public class MixinServerListScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
addButton(new Button(5, 6, 98, 20, "ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,15 +17,16 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge;
|
||||
|
||||
import de.florianmichael.viaforge.common.PlatformFields;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.SharedConstants;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mod("viaforge")
|
||||
public class ViaForge115 implements PlatformFields {
|
||||
public class ViaForge115 implements VFPlatform {
|
||||
|
||||
public final static ViaForge115 PLATFORM = new ViaForge115();
|
||||
|
||||
@ -38,4 +39,9 @@ public class ViaForge115 implements PlatformFields {
|
||||
public Supplier<Boolean> isSingleplayer() {
|
||||
return () -> Minecraft.getInstance().hasSingleplayerServer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getLeadingDirectory() {
|
||||
return Minecraft.getInstance().gameDirectory;
|
||||
}
|
||||
}
|
||||
|
@ -38,8 +38,10 @@ public class MixinMainMenuScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("HEAD"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
|
||||
ViaForgeCommon.init(ViaForge115.PLATFORM);
|
||||
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
addButton(new Button(5, 6, 98, 20, "ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge115;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.screen.MultiplayerScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
@ -37,6 +38,8 @@ public class MixinMultiplayerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
addButton(new Button(5, 6, 98, 20, "ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.ServerListScreen;
|
||||
@ -36,6 +37,8 @@ public class MixinServerListScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
addButton(new Button(5, 6, 98, 20, "ViaForge", b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,15 +17,16 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge;
|
||||
|
||||
import de.florianmichael.viaforge.common.PlatformFields;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.SharedConstants;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mod("viaforge")
|
||||
public class ViaForge116 implements PlatformFields {
|
||||
public class ViaForge116 implements VFPlatform {
|
||||
|
||||
public final static ViaForge116 PLATFORM = new ViaForge116();
|
||||
|
||||
@ -38,4 +39,9 @@ public class ViaForge116 implements PlatformFields {
|
||||
public Supplier<Boolean> isSingleplayer() {
|
||||
return () -> Minecraft.getInstance().hasSingleplayerServer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getLeadingDirectory() {
|
||||
return Minecraft.getInstance().gameDirectory;
|
||||
}
|
||||
}
|
||||
|
@ -39,8 +39,10 @@ public class MixinMainMenuScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("HEAD"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20, new StringTextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
|
||||
|
||||
ViaForgeCommon.init(ViaForge116.PLATFORM);
|
||||
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
addButton(new Button(5, 6, 98, 20, new StringTextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.screen.MultiplayerScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
@ -36,6 +37,8 @@ public class MixinMultiplayerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20, ITextComponent.nullToEmpty("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
addButton(new Button(5, 6, 98, 20, ITextComponent.nullToEmpty("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge116;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.ServerListScreen;
|
||||
@ -37,6 +38,8 @@ public class MixinServerListScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addButton(new Button(5, 6, 98, 20, ITextComponent.nullToEmpty("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
addButton(new Button(5, 6, 98, 20, ITextComponent.nullToEmpty("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,15 +17,16 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge;
|
||||
|
||||
import de.florianmichael.viaforge.common.PlatformFields;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import net.minecraft.SharedConstants;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mod("viaforge")
|
||||
public class ViaForge117 implements PlatformFields {
|
||||
public class ViaForge117 implements VFPlatform {
|
||||
|
||||
public final static ViaForge117 PLATFORM = new ViaForge117();
|
||||
|
||||
@ -38,4 +39,9 @@ public class ViaForge117 implements PlatformFields {
|
||||
public Supplier<Boolean> isSingleplayer() {
|
||||
return () -> Minecraft.getInstance().hasSingleplayerServer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getLeadingDirectory() {
|
||||
return Minecraft.getInstance().gameDirectory;
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge117;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.screens.DirectJoinServerScreen;
|
||||
@ -38,6 +39,8 @@ public class MixinDirectJoinServerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge117;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.screens.Screen;
|
||||
@ -38,6 +39,8 @@ public class MixinJoinMultiplayerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -39,8 +39,10 @@ public class MixinTitleScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("HEAD"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
|
||||
|
||||
ViaForgeCommon.init(ViaForge117.PLATFORM);
|
||||
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,15 +17,16 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge;
|
||||
|
||||
import de.florianmichael.viaforge.common.PlatformFields;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import net.minecraft.SharedConstants;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mod("viaforge")
|
||||
public class ViaForge118 implements PlatformFields {
|
||||
public class ViaForge118 implements VFPlatform {
|
||||
|
||||
public final static ViaForge118 PLATFORM = new ViaForge118();
|
||||
|
||||
@ -38,4 +39,9 @@ public class ViaForge118 implements PlatformFields {
|
||||
public Supplier<Boolean> isSingleplayer() {
|
||||
return () -> Minecraft.getInstance().hasSingleplayerServer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getLeadingDirectory() {
|
||||
return Minecraft.getInstance().gameDirectory;
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge118;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.screens.DirectJoinServerScreen;
|
||||
@ -38,6 +39,8 @@ public class MixinDirectJoinServerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge118;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.screens.Screen;
|
||||
@ -38,6 +39,8 @@ public class MixinJoinMultiplayerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -39,8 +39,10 @@ public class MixinTitleScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("HEAD"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
|
||||
|
||||
ViaForgeCommon.init(ViaForge118.PLATFORM);
|
||||
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,15 +17,16 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge;
|
||||
|
||||
import de.florianmichael.viaforge.common.PlatformFields;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import net.minecraft.SharedConstants;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mod("viaforge")
|
||||
public class ViaForge119 implements PlatformFields {
|
||||
public class ViaForge119 implements VFPlatform {
|
||||
|
||||
public final static ViaForge119 PLATFORM = new ViaForge119();
|
||||
|
||||
@ -38,4 +39,9 @@ public class ViaForge119 implements PlatformFields {
|
||||
public Supplier<Boolean> isSingleplayer() {
|
||||
return () -> Minecraft.getInstance().isSingleplayer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getLeadingDirectory() {
|
||||
return Minecraft.getInstance().gameDirectory;
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge119;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.screens.DirectJoinServerScreen;
|
||||
@ -37,6 +38,8 @@ public class MixinDirectJoinServerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge119;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.screens.Screen;
|
||||
@ -37,6 +38,8 @@ public class MixinJoinMultiplayerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -38,8 +38,10 @@ public class MixinTitleScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("HEAD"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
|
||||
ViaForgeCommon.init(ViaForge119.PLATFORM);
|
||||
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,15 +17,16 @@
|
||||
*/
|
||||
package de.florianmichael.viaforge;
|
||||
|
||||
import de.florianmichael.viaforge.common.PlatformFields;
|
||||
import de.florianmichael.viaforge.common.platform.VFPlatform;
|
||||
import net.minecraft.SharedConstants;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mod("viaforge")
|
||||
public class ViaForge120 implements PlatformFields {
|
||||
public class ViaForge120 implements VFPlatform {
|
||||
|
||||
public final static ViaForge120 PLATFORM = new ViaForge120();
|
||||
|
||||
@ -38,4 +39,9 @@ public class ViaForge120 implements PlatformFields {
|
||||
public Supplier<Boolean> isSingleplayer() {
|
||||
return () -> Minecraft.getInstance().isSingleplayer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getLeadingDirectory() {
|
||||
return Minecraft.getInstance().gameDirectory;
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge120;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.screens.DirectJoinServerScreen;
|
||||
@ -37,6 +38,8 @@ public class MixinDirectJoinServerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowDirectConnectButton()) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package de.florianmichael.viaforge.mixin;
|
||||
|
||||
import de.florianmichael.viaforge.ViaForge120;
|
||||
import de.florianmichael.viaforge.common.ViaForgeCommon;
|
||||
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.screens.Screen;
|
||||
@ -37,6 +38,8 @@ public class MixinJoinMultiplayerScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMultiplayerButton()) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -38,8 +38,10 @@ public class MixinTitleScreen extends Screen {
|
||||
|
||||
@Inject(method = "init", at = @At("HEAD"))
|
||||
public void hookViaForgeButton(CallbackInfo ci) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
|
||||
ViaForgeCommon.init(ViaForge120.PLATFORM);
|
||||
|
||||
if (ViaForgeCommon.getManager().getConfig().isShowMainMenuButton()) {
|
||||
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user