EiraIRC (Discontinued)

EiraIRC (Discontinued)

273k Downloads

Multiplayer Commands Fail

KazWolfe opened this issue · 1 comments

commented

When using the latest build (eirairc-mc1.8-2.8.19), running the commands /irc connect, /irc disconnect, /irc join, /irc leave and others, the following stacktrace is generated:

[12:14:45] [Client thread/INFO]: [CHAT] An unknown error occurred while attempting to perform this command
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NullPointerException
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.util.Utils.isOP(Utils.java:177)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.CommandConnect.canCommandSenderUseCommand(CommandConnect.java:62)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.SubCommandWrapper.func_71519_b(SubCommandWrapper.java:49)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.IRCCommandHandler.processCommand(IRCCommandHandler.java:109)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.CommandIRC.func_71515_b(CommandIRC.java:45)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraftforge.client.ClientCommandHandler.func_71556_a(ClientCommandHandler.java:72)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.client.gui.chat.GuiChatExtended.func_73869_a(GuiChatExtended.java:93)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146282_l(GuiScreen.java:567)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:524)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1663)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1022)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:345)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.main.Main.main(SourceFile:120)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at java.lang.reflect.Method.invoke(Method.java:483)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[12:14:45] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[12:14:45] [Client thread/INFO]: Baking listener list for OutboundChatFilter with 0 listeners
[12:14:46] [Client thread/INFO]: [CHAT] Unknown command. Type "/help" for help.
[12:14:49] [Client thread/INFO]: [CHAT] §cUsage: /irc 
[12:14:49] [Client thread/INFO]: [CHAT] §eGeneral Commands: §fconfig, help, list
[12:14:49] [Client thread/INFO]: [CHAT] §eIRC Commands: §fconnect, disconnect, join, leave, nick, msg, who
[12:14:49] [Client thread/INFO]: [CHAT] §eInterOp Commands: §fop, deop, voice, devoice, kick, ban, unban, umode, mode, topic
[12:14:49] [Client thread/INFO]: [CHAT] §eSpecial Commands: §ftwitch, color, alias
[12:14:54] [Client thread/INFO]: [CHAT] An unknown error occurred while attempting to perform this command
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NullPointerException
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.util.Utils.isOP(Utils.java:177)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.CommandJoin.canCommandSenderUseCommand(CommandJoin.java:73)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.SubCommandWrapper.func_71519_b(SubCommandWrapper.java:49)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.IRCCommandHandler.processCommand(IRCCommandHandler.java:109)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.CommandIRC.func_71515_b(CommandIRC.java:45)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraftforge.client.ClientCommandHandler.func_71556_a(ClientCommandHandler.java:72)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_175281_b(GuiScreen.java:453)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_175275_f(GuiScreen.java:443)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiChat.func_73869_a(GuiChat.java:111)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146282_l(GuiScreen.java:567)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:524)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1663)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1022)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:345)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.main.Main.main(SourceFile:120)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at java.lang.reflect.Method.invoke(Method.java:483)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[12:14:54] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[12:14:58] [Client thread/INFO]: [CHAT] Unknown command. Type "/help" for help.
[12:15:01] [Client thread/INFO]: [CHAT] An unknown error occurred while attempting to perform this command
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NullPointerException
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.util.Utils.isOP(Utils.java:177)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.CommandLeave.canCommandSenderUseCommand(CommandLeave.java:79)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.SubCommandWrapper.func_71519_b(SubCommandWrapper.java:49)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.IRCCommandHandler.processCommand(IRCCommandHandler.java:109)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.CommandIRC.func_71515_b(CommandIRC.java:45)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraftforge.client.ClientCommandHandler.func_71556_a(ClientCommandHandler.java:72)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_175281_b(GuiScreen.java:453)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_175275_f(GuiScreen.java:443)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiChat.func_73869_a(GuiChat.java:111)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146282_l(GuiScreen.java:567)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:524)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1663)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1022)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:345)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.main.Main.main(SourceFile:120)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at java.lang.reflect.Method.invoke(Method.java:483)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[12:15:01] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[12:15:29] [Client thread/INFO]: [CHAT] An unknown error occurred while attempting to perform this command
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NullPointerException
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.util.Utils.isOP(Utils.java:177)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.CommandJoin.canCommandSenderUseCommand(CommandJoin.java:73)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.SubCommandWrapper.func_71519_b(SubCommandWrapper.java:49)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.IRCCommandHandler.processCommand(IRCCommandHandler.java:109)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.CommandIRC.func_71515_b(CommandIRC.java:45)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraftforge.client.ClientCommandHandler.func_71556_a(ClientCommandHandler.java:72)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_175281_b(GuiScreen.java:453)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_175275_f(GuiScreen.java:443)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiChat.func_73869_a(GuiChat.java:111)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146282_l(GuiScreen.java:567)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:524)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1663)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1022)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:345)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.main.Main.main(SourceFile:120)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at java.lang.reflect.Method.invoke(Method.java:483)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[12:15:29] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[12:15:48] [Client thread/INFO]: [CHAT] §fThe §aTitan §fkit is now released! Check it out! §b§nmcpvp.com/kits
[12:15:56] [Client thread/INFO]: [CHAT] §cUsage: /irc 
[12:15:56] [Client thread/INFO]: [CHAT] §eGeneral Commands: §fconfig, help, list
[12:15:56] [Client thread/INFO]: [CHAT] §eIRC Commands: §fconnect, disconnect, join, leave, nick, msg, who
[12:15:56] [Client thread/INFO]: [CHAT] §eInterOp Commands: §fop, deop, voice, devoice, kick, ban, unban, umode, mode, topic
[12:15:56] [Client thread/INFO]: [CHAT] §eSpecial Commands: §ftwitch, color, alias
[12:15:59] [Client thread/INFO]: [CHAT] §eEiraIRC is connected to:
[12:15:59] [Client thread/INFO]: [CHAT]  * hackerreports.irc.slack.com ()
[12:16:17] [Client thread/INFO]: [CHAT] An unknown error occurred while attempting to perform this command
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NullPointerException
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.util.Utils.isOP(Utils.java:177)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.CommandConfig.canCommandSenderUseCommand(CommandConfig.java:66)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.SubCommandWrapper.func_71519_b(SubCommandWrapper.java:49)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.IRCCommandHandler.processCommand(IRCCommandHandler.java:109)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.blay09.mods.eirairc.command.base.CommandIRC.func_71515_b(CommandIRC.java:45)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraftforge.client.ClientCommandHandler.func_71556_a(ClientCommandHandler.java:72)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_175281_b(GuiScreen.java:453)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_175275_f(GuiScreen.java:443)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiChat.func_73869_a(GuiChat.java:111)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146282_l(GuiScreen.java:567)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:524)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1663)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1022)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:345)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.client.main.Main.main(SourceFile:120)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at java.lang.reflect.Method.invoke(Method.java:483)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[12:16:17] [Client thread/INFO]: [java.lang.Throwable$WrappedPrintStream:println:748]:  at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[12:16:40] [Client thread/INFO]: [CHAT] §f hello
[12:16:45] [Client thread/INFO]: [CHAT] §f hi

Going into a singleplayer world and running these commands works fine. A workaround (?) would be to open a singleplayer world and then go into multiplayer. The commands work fine afterwards.

commented

That's a rather weird error. My only explanation is Minecraft not cleaning up properly after you've entered a single player world, which means this issue shouldn't happen unless you were in a singleplayer world before.

For now, I've changed the function to use Minecraft's version of the permission check (which it should anyway!). If the issue persists then it really is most likely a Vanilla bug, which I can only try to work around, but not fix at the core.