[1.19.4] Fail hard when unable to register key bindings, and update Loader. (#2880)

Improve networking API test keybindings.
This commit is contained in:
modmuss50
2023-02-04 14:17:31 +00:00
committed by GitHub
parent 12a6ba2c15
commit c477957e8d
6 changed files with 14 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ import java.util.Optional;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import it.unimi.dsi.fastutil.objects.ReferenceArrayList; import it.unimi.dsi.fastutil.objects.ReferenceArrayList;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.option.KeyBinding; import net.minecraft.client.option.KeyBinding;
import net.fabricmc.fabric.mixin.client.keybinding.KeyBindingAccessor; import net.fabricmc.fabric.mixin.client.keybinding.KeyBindingAccessor;
@@ -51,6 +52,10 @@ public final class KeyBindingRegistryImpl {
} }
public static KeyBinding registerKeyBinding(KeyBinding binding) { public static KeyBinding registerKeyBinding(KeyBinding binding) {
if (MinecraftClient.getInstance().options != null) {
throw new IllegalStateException("GameOptions has already been initialised");
}
for (KeyBinding existingKeyBindings : MODDED_KEY_BINDINGS) { for (KeyBinding existingKeyBindings : MODDED_KEY_BINDINGS) {
if (existingKeyBindings == binding) { if (existingKeyBindings == binding) {
throw new IllegalArgumentException("Attempted to register a key binding twice: " + binding.getTranslationKey()); throw new IllegalArgumentException("Attempted to register a key binding twice: " + binding.getTranslationKey());

View File

@@ -34,7 +34,7 @@ import net.fabricmc.fabric.api.client.networking.v1.C2SPlayChannelEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
public final class NetworkingChannelClientTest implements ClientModInitializer { public final class NetworkingChannelClientTest implements ClientModInitializer {
public static final KeyBinding OPEN = KeyBindingHelper.registerKeyBinding(new KeyBinding("networking-v1-test", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_MENU, "fabric-networking-api-v1-testmod\"")); public static final KeyBinding OPEN = KeyBindingHelper.registerKeyBinding(new KeyBinding("key.fabric-networking-api-v1-testmod.open", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_MENU, "key.category.fabric-networking-api-v1-testmod"));
static final Set<Identifier> SUPPORTED_C2S_CHANNELS = new HashSet<>(); static final Set<Identifier> SUPPORTED_C2S_CHANNELS = new HashSet<>();
@Override @Override

View File

@@ -33,7 +33,7 @@ import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
// The server in response will send a chat message to the client. // The server in response will send a chat message to the client.
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class NetworkingKeybindClientPacketTest implements ClientModInitializer { public class NetworkingKeybindClientPacketTest implements ClientModInitializer {
public static final KeyBinding TEST_BINDING = KeyBindingHelper.registerKeyBinding(new KeyBinding("fabric-networking-api-v1-testmod-keybind", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_BRACKET, "fabric-networking-api-v1-testmod")); public static final KeyBinding TEST_BINDING = KeyBindingHelper.registerKeyBinding(new KeyBinding("key.fabric-networking-api-v1-testmod.test", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_BRACKET, "key.category.fabric-networking-api-v1-testmod"));
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {

View File

@@ -0,0 +1,5 @@
{
"key.category.fabric-networking-api-v1-testmod": "Fabric Network Test",
"key.fabric-networking-api-v1-testmod.test": "Send test packet",
"key.fabric-networking-api-v1-testmod.open": "Open channel tester"
}

View File

@@ -5,7 +5,7 @@ fabric.loom.multiProjectOptimisation=true
version=0.73.3 version=0.73.3
minecraft_version=23w05a minecraft_version=23w05a
yarn_version=+build.2 yarn_version=+build.2
loader_version=0.14.13 loader_version=0.14.14
installer_version=0.11.1 installer_version=0.11.1
prerelease=true prerelease=true

View File

@@ -19,7 +19,7 @@
"FabricMC" "FabricMC"
], ],
"depends": { "depends": {
"fabricloader": ">=0.14.13", "fabricloader": ">=0.14.14",
"java": ">=17", "java": ">=17",
"minecraft": ">=1.19.4- <1.19.5-" "minecraft": ">=1.19.4- <1.19.5-"
}, },