use of cc.hyperium.addons.InternalAddons in project Hyperium by HyperiumClient.
the class Hyperium method init.
/**
* Initialize all local variables
* <p>
* Create / check for important things that need to be loaded
* before the client officially allows the player to use it.
*
* @param event Fired on startup, after screen is displayed {@link InitializationEvent}
*/
@InvokeEvent(priority = Priority.HIGH)
public void init(InitializationEvent event) {
try {
// Create the network handler, register it in config, then check for a LoginReply
Multithreading.runAsync(() -> {
networkHandler = new NetworkHandler();
CONFIG.register(networkHandler);
this.client = new NettyClient(networkHandler);
UniversalNetty.getInstance().getPacketManager().register(new LoginReplyHandler());
});
// Initialize notifications
notification = new NotificationCenter();
// Get the build id
createBuildId();
Hyperium.LOGGER.info("Hyperium Build ID: {}", BUILD_ID);
// Check for if the user is in a developers environment
checkForDevEnvironment();
// Initialize cosmetics
cosmetics = new HyperiumCosmetics();
// If it's the users first launch, create a folder to store their lock file in
firstLaunch = new File(folder.getAbsolutePath() + "/accounts").mkdirs();
// Determine if the users ever charge backed, if they have, they won't be allowed to launch
new ChargebackStopper();
// Create a lock file if the user accepts the TOS
this.acceptedTos = new File(folder.getAbsolutePath() + "/accounts/" + Minecraft.getMinecraft().getSession().getPlayerID() + ".lck").exists();
SplashProgress.setProgress(5, I18n.format("splashprogress.loadinghandlers"));
// Initialize handlers
handlers = new HyperiumHandlers();
handlers.postInit();
SplashProgress.setProgress(6, I18n.format("splashprogress.registeringlisteners"));
// Register events
EventBus.INSTANCE.register(new ToggleSprintContainer());
EventBus.INSTANCE.register(notification);
EventBus.INSTANCE.register(CompactChat.getInstance());
EventBus.INSTANCE.register(CONFIG.register(FPSLimiter.getInstance()));
EventBus.INSTANCE.register(confirmation);
EventBus.INSTANCE.register(statTrack);
CONFIG.register(statTrack);
CONFIG.register(new ToggleSprintContainer());
SplashProgress.setProgress(7, I18n.format("splashprogress.startinghyperium"));
LOGGER.info("[Hyperium] Started!");
// Set the window title
Display.setTitle("Hyperium " + Metadata.getVersion());
SplashProgress.setProgress(8, I18n.format("splashprogress.registeringconfiguration"));
// Register the settings
Settings.register();
CONFIG.register(new ColourOptions());
SplashProgress.setProgress(9, I18n.format("splashprogress.registeringcommands"));
// Register all the default commands
registerCommands();
// Initialize the Purchase API
EventBus.INSTANCE.register(PurchaseApi.getInstance());
SplashProgress.setProgress(10, I18n.format("splashprogress.loadingintegrations"));
// Register mods & addons
modIntegration = new HyperiumModIntegration();
internalAddons = new InternalAddons();
// Fetch Hyperium staff members
fetchStaffMembers();
// Add a thread for shutdowns
Runtime.getRuntime().addShutdownHook(new Thread(this::shutdown));
// Load
richPresenceManager.load();
// Check if the user has accepted the TOS, if they have, check the Hyperium status
if (acceptedTos) {
sk1erMod = new Sk1erMod("hyperium", Metadata.getVersion(), object -> {
if (object.has("enabled") && !object.optBoolean("enabled")) {
handlers.getHyperiumCommandHandler().clear();
}
});
sk1erMod.checkStatus();
}
SplashProgress.setProgress(11, I18n.format("splashprogress.finishing"));
// Load the previous chat session
loadPreviousChatFile();
// Fetch the current version
fetchVersion();
// Check if the user is running Optifine
if (AddonCheckerUtil.isUsingOptifine()) {
// 🦀
optifineInstalled = true;
}
// Print every loaded addon
collectAddons();
LOGGER.info("Hyperium loaded in {} seconds", (System.currentTimeMillis() - launchTime) / 1000F);
} catch (Throwable t) {
// If an issue is caught, crash the game
Minecraft.getMinecraft().crashed(new CrashReport("Hyperium Startup Failure", t));
}
}
Aggregations