Skip to content

Record class support? #75

@camdenorrb

Description

@camdenorrb

Record class

public record PluginConfig(String catName) {}

Loading

    /**
     * Loads the current config or copies the default
     */
    private void loadConfig() {

        final Path configPath = Path.of("config.toml");

        // Create the default config if no file exists
        if (Files.notExists(configPath)) {
            try (final InputStream configStream = getClass().getResource("/config.toml").openStream()) {
                Files.copy(configStream, configPath);
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }

        // Read config
        try {
            pluginConfig = new Toml().read(Files.newInputStream(configPath)).to(PluginConfig.class);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }

Exception

java.lang.AssertionError: java.lang.IllegalAccessException: Can not set final java.lang.String field dev.twelveoclock.plugintemplate.config.PluginConfig.catName to java.lang.String
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226) ~[patched_1.17.1.jar:git-Purpur-1393]
        at com.google.gson.Gson.fromJson(Gson.java:887) ~[patched_1.17.1.jar:git-Purpur-1393]
        at com.google.gson.Gson.fromJson(Gson.java:952) ~[patched_1.17.1.jar:git-Purpur-1393]
        at com.google.gson.Gson.fromJson(Gson.java:925) ~[patched_1.17.1.jar:git-Purpur-1393]
        at com.moandjiezana.toml.Toml.to(Toml.java:323) ~[JavaGradlePluginTemplate-1.0.0-all.jar:?]
        at dev.twelveoclock.plugintemplate.TemplatePlugin.loadConfig(TemplatePlugin.java:66) ~[JavaGradlePluginTemplate-1.0.0-all.jar:?]
        at dev.twelveoclock.plugintemplate.TemplatePlugin.onLoad(TemplatePlugin.java:31) ~[JavaGradlePluginTemplate-1.0.0-all.jar:?]
        at org.bukkit.craftbukkit.v1_17_R1.CraftServer.loadPlugins(CraftServer.java:416) ~[patched_1.17.1.jar:git-Purpur-1393]
        at net.minecraft.server.dedicated.DedicatedServer.init(DedicatedServer.java:287) ~[patched_1.17.1.jar:git-Purpur-1393]
        at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1216) ~[patched_1.17.1.jar:git-Purpur-1393]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:321) ~[patched_1.17.1.jar:git-Purpur-1393]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.IllegalAccessException: Can not set final java.lang.String field dev.twelveoclock.plugintemplate.config.PluginConfig.catName to java.lang.String
        at jdk.internal.reflect.UnsafeFieldAccessorImpl.throwFinalFieldIllegalAccessException(UnsafeFieldAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.UnsafeFieldAccessorImpl.throwFinalFieldIllegalAccessException(UnsafeFieldAccessorImpl.java:81) ~[?:?]
        at jdk.internal.reflect.UnsafeQualifiedObjectFieldAccessorImpl.set(UnsafeQualifiedObjectFieldAccessorImpl.java:79) ~[?:?]
        at java.lang.reflect.Field.set(Field.java:824) ~[?:?]
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[patched_1.17.1.jar:git-Purpur-1393]
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220) ~[patched_1.17.1.jar:git-Purpur-1393]
        ... 11 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions