├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── crash_report.md │ └── feature_request.md └── pull_request_template.md ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── libs └── Netty Client.jar ├── settings.gradle └── src └── main ├── java ├── cc │ └── hyperium │ │ ├── Hyperium.java │ │ ├── SplashProgress.java │ │ ├── addons │ │ ├── AbstractAddon.java │ │ ├── InternalAddons.java │ │ ├── customcrosshair │ │ │ ├── CustomCrosshairAddon.java │ │ │ ├── command │ │ │ │ └── CommandCustomCrosshair.java │ │ │ ├── crosshair │ │ │ │ └── CustomCrosshair.java │ │ │ ├── gui │ │ │ │ ├── CustomCrosshairScreen.java │ │ │ │ ├── GuiCustomCrosshairEditColour.java │ │ │ │ ├── GuiCustomCrosshairEditCrosshair.java │ │ │ │ └── items │ │ │ │ │ ├── CCButton.java │ │ │ │ │ ├── CCCallback.java │ │ │ │ │ ├── CCEditColourButton.java │ │ │ │ │ ├── CCGuiItem.java │ │ │ │ │ ├── CCHelpButton.java │ │ │ │ │ ├── CCListDropBox.java │ │ │ │ │ ├── CCPanel.java │ │ │ │ │ ├── CCScrollbar.java │ │ │ │ │ ├── CCSlider.java │ │ │ │ │ └── CCTickbox.java │ │ │ └── utils │ │ │ │ ├── CustomCrosshairConfig.java │ │ │ │ └── CustomCrosshairGraphics.java │ │ ├── readme.md │ │ └── sidebar │ │ │ ├── SidebarAddon.java │ │ │ ├── commands │ │ │ └── CommandSidebar.java │ │ │ ├── config │ │ │ └── Configuration.java │ │ │ └── gui │ │ │ ├── GuiSidebar.java │ │ │ └── screen │ │ │ ├── GuiScreenBackground.java │ │ │ ├── GuiScreenHelper.java │ │ │ ├── GuiScreenSettings.java │ │ │ └── GuiScreenSidebar.java │ │ ├── commands │ │ ├── BaseCommand.java │ │ ├── CommandException.java │ │ ├── CommandUsageException.java │ │ ├── HyperiumCommandHandler.java │ │ └── defaults │ │ │ ├── CommandBossbarGui.java │ │ │ ├── CommandClearChat.java │ │ │ ├── CommandConfigGui.java │ │ │ ├── CommandCoords.java │ │ │ ├── CommandDebug.java │ │ │ ├── CommandDisableCommand.java │ │ │ ├── CommandGarbageCollect.java │ │ │ ├── CommandGuild.java │ │ │ ├── CommandKeybinds.java │ │ │ ├── CommandLogs.java │ │ │ ├── CommandMessage.java │ │ │ ├── CommandNameHistory.java │ │ │ ├── CommandParticleAuras.java │ │ │ ├── CommandParty.java │ │ │ ├── CommandPing.java │ │ │ └── CommandStats.java │ │ ├── config │ │ ├── Category.java │ │ ├── ConfigOpt.java │ │ ├── DefaultConfig.java │ │ ├── PostConfigHandler.java │ │ ├── PreConfigHandler.java │ │ ├── PreSaveHandler.java │ │ ├── SelectorSetting.java │ │ ├── Settings.java │ │ ├── SliderSetting.java │ │ └── ToggleSetting.java │ │ ├── cosmetics │ │ ├── AbstractCosmetic.java │ │ ├── CosmeticsUtil.java │ │ ├── HyperiumCosmetics.java │ │ ├── butt │ │ │ └── ButtCosmetic.java │ │ ├── companions │ │ │ ├── dragon │ │ │ │ └── DragonCompanion.java │ │ │ └── hamster │ │ │ │ ├── EntityHamster.java │ │ │ │ ├── HamsterCompanion.java │ │ │ │ ├── HamsterModel.java │ │ │ │ └── RenderHamster.java │ │ ├── deadmau5 │ │ │ └── Deadmau5Cosmetic.java │ │ ├── dragon │ │ │ ├── DragonCosmetic.java │ │ │ └── DragonHeadRenderer.java │ │ ├── flip │ │ │ └── FlipCosmetic.java │ │ ├── hats │ │ │ ├── CosmeticHat.java │ │ │ ├── ModelHatFez.java │ │ │ ├── ModelHatLego.java │ │ │ └── ModelHatTophat.java │ │ └── wings │ │ │ ├── WingsCosmetic.java │ │ │ └── WingsRenderer.java │ │ ├── event │ │ ├── CancellableEvent.java │ │ ├── Event.java │ │ ├── EventBus.java │ │ ├── EventSubscriber.java │ │ ├── InvokeEvent.java │ │ ├── Priority.java │ │ ├── client │ │ │ ├── GameShutDownEvent.java │ │ │ ├── InitializationEvent.java │ │ │ ├── PreInitializationEvent.java │ │ │ └── TickEvent.java │ │ ├── entity │ │ │ ├── ArrowShootEvent.java │ │ │ ├── FovUpdateEvent.java │ │ │ ├── KillEvent.java │ │ │ ├── LivingDeathEvent.java │ │ │ ├── PlayerAttackEntityEvent.java │ │ │ └── PlayerSwingEvent.java │ │ ├── gui │ │ │ ├── GuiClickEvent.java │ │ │ ├── GuiDrawScreenEvent.java │ │ │ ├── GuiKeyTypedEvent.java │ │ │ ├── GuiOpenEvent.java │ │ │ └── InitGuiEvent.java │ │ ├── interact │ │ │ ├── ActionPerformedEvent.java │ │ │ ├── KeyPressEvent.java │ │ │ ├── KeyReleaseEvent.java │ │ │ ├── LeftMouseClickEvent.java │ │ │ ├── MouseButtonEvent.java │ │ │ └── RightMouseClickEvent.java │ │ ├── model │ │ │ ├── CopyPlayerModelAnglesEvent.java │ │ │ ├── PostCopyPlayerModelAnglesEvent.java │ │ │ └── PreCopyPlayerModelAnglesEvent.java │ │ ├── network │ │ │ ├── PacketReceivedEvent.java │ │ │ ├── PurchaseLoadEvent.java │ │ │ ├── chat │ │ │ │ ├── ChatEvent.java │ │ │ │ ├── SendChatMessageEvent.java │ │ │ │ └── ServerChatEvent.java │ │ │ └── server │ │ │ │ ├── ServerJoinEvent.java │ │ │ │ ├── ServerLeaveEvent.java │ │ │ │ ├── ServerSwitchEvent.java │ │ │ │ ├── SingleplayerJoinEvent.java │ │ │ │ └── hypixel │ │ │ │ ├── AchievementGetEvent.java │ │ │ │ ├── FriendRemoveEvent.java │ │ │ │ ├── HypixelFriendRequestEvent.java │ │ │ │ ├── HypixelGetCoinsEvent.java │ │ │ │ ├── HypixelGetXPEvent.java │ │ │ │ ├── HypixelPartyInviteEvent.java │ │ │ │ ├── HypixelWinEvent.java │ │ │ │ ├── JoinHypixelEvent.java │ │ │ │ ├── JoinMinigameEvent.java │ │ │ │ └── minigames │ │ │ │ ├── Minigame.java │ │ │ │ └── MinigameListener.java │ │ ├── render │ │ │ ├── DrawBlockHighlightEvent.java │ │ │ ├── EntityRenderEvent.java │ │ │ ├── RenderEntitiesEvent.java │ │ │ ├── RenderEvent.java │ │ │ ├── RenderGuiEvent.java │ │ │ ├── RenderHUDEvent.java │ │ │ ├── RenderNameTagEvent.java │ │ │ ├── RenderPlayerEvent.java │ │ │ ├── RenderScoreboardEvent.java │ │ │ ├── RenderSelectedItemEvent.java │ │ │ ├── RenderTickEvent.java │ │ │ └── RenderWorldEvent.java │ │ └── world │ │ │ ├── EntityJoinWorldEvent.java │ │ │ ├── SpawnpointChangeEvent.java │ │ │ ├── WorldChangeEvent.java │ │ │ ├── WorldLoadEvent.java │ │ │ ├── WorldUnloadEvent.java │ │ │ ├── audio │ │ │ └── SoundPlayEvent.java │ │ │ └── item │ │ │ ├── ItemPickupEvent.java │ │ │ ├── ItemTooltipEvent.java │ │ │ └── ItemTossEvent.java │ │ ├── gui │ │ ├── BlurHandler.java │ │ ├── CapesGui.java │ │ ├── ChangeBackgroundGui.java │ │ ├── ColourOptions.java │ │ ├── ConfirmationPopup.java │ │ ├── GuiAddonError.java │ │ ├── GuiBlock.java │ │ ├── GuiBoxItem.java │ │ ├── GuiButtonIcon.java │ │ ├── GuiConfirmDisconnect.java │ │ ├── GuiConfirmQuit.java │ │ ├── GuiDances.java │ │ ├── GuiHyperiumCredits.java │ │ ├── GuiHyperiumScreen.java │ │ ├── GuiHyperiumScreenIngameMenu.java │ │ ├── GuiHyperiumScreenMainMenu.java │ │ ├── GuiHyperiumScreenTos.java │ │ ├── GuiIngameMultiplayer.java │ │ ├── HyperiumGui.java │ │ ├── Icons.java │ │ ├── MaterialTextField.java │ │ ├── NameHistoryGui.java │ │ ├── NotificationCenter.java │ │ ├── ParticleGui.java │ │ ├── ParticleOverlay.java │ │ ├── ScissorState.java │ │ ├── ScoreboardRenderer.java │ │ ├── carousel │ │ │ ├── CarouselItem.java │ │ │ └── PurchaseCarousel.java │ │ ├── hyperium │ │ │ ├── HyperiumMainGui.java │ │ │ ├── RGBFieldSet.java │ │ │ ├── components │ │ │ │ ├── AbstractTab.java │ │ │ │ ├── AbstractTabComponent.java │ │ │ │ ├── ButtonComponent.java │ │ │ │ ├── CollapsibleTabComponent.java │ │ │ │ ├── LabelComponent.java │ │ │ │ ├── LinkComponent.java │ │ │ │ ├── RGBComponent.java │ │ │ │ ├── SelectorComponent.java │ │ │ │ ├── SliderComponent.java │ │ │ │ └── ToggleComponent.java │ │ │ └── tabs │ │ │ │ ├── SettingsTab.java │ │ │ │ └── ShopTab.java │ │ ├── integrations │ │ │ └── HypixelFriendsGui.java │ │ ├── keybinds │ │ │ ├── GuiKeybinds.java │ │ │ ├── KeybindButton.java │ │ │ └── KeybindEntry.java │ │ ├── main │ │ │ ├── HyperiumOverlay.java │ │ │ ├── ListCompatibilityHack.java │ │ │ └── components │ │ │ │ ├── OverlayComponent.java │ │ │ │ └── OverlayToggle.java │ │ ├── tips │ │ │ └── TipRegistry.java │ │ └── util │ │ │ └── CreateServerButton.java │ │ ├── handlers │ │ ├── HyperiumHandlers.java │ │ └── handlers │ │ │ ├── BroadcastEvents.java │ │ │ ├── CommandQueue.java │ │ │ ├── FlipHandler.java │ │ │ ├── GuiDisplayHandler.java │ │ │ ├── HyperiumNetwork.java │ │ │ ├── HypixelDetector.java │ │ │ ├── LocationHandler.java │ │ │ ├── OtherConfigOptions.java │ │ │ ├── SettingsHandler.java │ │ │ ├── SettingsMigrator.java │ │ │ ├── StatusHandler.java │ │ │ ├── animation │ │ │ ├── AbstractAnimationHandler.java │ │ │ ├── AbstractPostCopyAnglesAnimationHandler.java │ │ │ ├── AbstractPreCopyAnglesAnimationHandler.java │ │ │ ├── AnimatedDance.java │ │ │ ├── AnimationFrame.java │ │ │ ├── BodyPart.java │ │ │ ├── DabHandler.java │ │ │ ├── FlossDanceHandler.java │ │ │ ├── TPoseHandler.java │ │ │ ├── TwerkDance.java │ │ │ ├── YeetHandler.java │ │ │ └── cape │ │ │ │ └── HyperiumCapeHandler.java │ │ │ ├── chat │ │ │ ├── DMChatHandler.java │ │ │ ├── FriendRequestChatHandler.java │ │ │ ├── GeneralChatHandler.java │ │ │ ├── GuildChatHandler.java │ │ │ ├── HyperiumChatHandler.java │ │ │ ├── PartyInviteChatHandler.java │ │ │ ├── QuestTrackingChatHandler.java │ │ │ └── WinTrackingChatHandler.java │ │ │ ├── data │ │ │ ├── HypixelAPI.java │ │ │ └── leaderboards │ │ │ │ ├── Leaderboard.java │ │ │ │ └── LeaderboardEntry.java │ │ │ ├── fov │ │ │ └── FovModifier.java │ │ │ ├── hud │ │ │ ├── Maps.java │ │ │ ├── NetworkInfo.java │ │ │ ├── TabCompletionUtil.java │ │ │ └── VanillaEnhancementsHud.java │ │ │ ├── hypixel │ │ │ └── HypixelGuiAugmenter.java │ │ │ ├── keybinds │ │ │ ├── HyperiumBind.java │ │ │ ├── KeyBindConfig.java │ │ │ ├── KeyBindHandler.java │ │ │ └── keybinds │ │ │ │ ├── DabKeybind.java │ │ │ │ ├── FlipKeybind.java │ │ │ │ ├── FlossKeybind.java │ │ │ │ ├── FriendsKeybind.java │ │ │ │ ├── GuiDanceKeybind.java │ │ │ │ ├── GuiKeybind.java │ │ │ │ ├── HideLeatherKeybind.java │ │ │ │ ├── NamesKeybind.java │ │ │ │ ├── RearCamKeybind.java │ │ │ │ ├── TPoseKeybind.java │ │ │ │ ├── TogglePerspectiveKeybind.java │ │ │ │ ├── ToggleSprintKeybind.java │ │ │ │ ├── TwerkDanceKeybind.java │ │ │ │ ├── UploadScreenshotKeybind.java │ │ │ │ └── ViewStatsKeybind.java │ │ │ ├── mixin │ │ │ └── LayerDeadmau5HeadHandler.java │ │ │ ├── particle │ │ │ ├── AbstractAnimation.java │ │ │ ├── EnumParticleType.java │ │ │ ├── IParticle.java │ │ │ ├── ParticleAura.java │ │ │ ├── ParticleAuraHandler.java │ │ │ ├── animations │ │ │ │ ├── DoubleHelix.java │ │ │ │ ├── DoubleTwirlAnimation.java │ │ │ │ ├── ExplodeAnimation.java │ │ │ │ ├── QuadTwirlAnimation.java │ │ │ │ ├── StaticTrailAnimation.java │ │ │ │ ├── TornadoAnimation.java │ │ │ │ ├── TripleTwirlAnimation.java │ │ │ │ └── VortexOfDoomAnimation.java │ │ │ └── particle │ │ │ │ ├── BlockCrackParticle.java │ │ │ │ ├── CloudParticle.java │ │ │ │ ├── CritParticle.java │ │ │ │ ├── ExplosionParticle.java │ │ │ │ ├── FireworkSparkParticle.java │ │ │ │ ├── FlameParticle.java │ │ │ │ ├── FootstepParticle.java │ │ │ │ ├── HeartParticle.java │ │ │ │ ├── ItemCrackParticle.java │ │ │ │ ├── LavaDripParticle.java │ │ │ │ ├── LavaParticle.java │ │ │ │ ├── NoteParticle.java │ │ │ │ ├── PortalParticle.java │ │ │ │ ├── RedstoneParticle.java │ │ │ │ ├── SlimeParticle.java │ │ │ │ ├── SmokeLargeParticle.java │ │ │ │ ├── SmokeNormalParticle.java │ │ │ │ ├── SnowShovelParticle.java │ │ │ │ ├── SnowballParticle.java │ │ │ │ ├── SpellInstantParticle.java │ │ │ │ ├── SpellMobAmbientParticle.java │ │ │ │ ├── SpellMobParticle.java │ │ │ │ ├── SpellParticle.java │ │ │ │ ├── SpellWitchParticle.java │ │ │ │ ├── SuspendedDepthParticle.java │ │ │ │ ├── SuspendedParticle.java │ │ │ │ ├── TownAuraParticle.java │ │ │ │ ├── VillagerAngryParticle.java │ │ │ │ ├── VillagerHappyParticle.java │ │ │ │ ├── WaterBubbleParticle.java │ │ │ │ ├── WaterDripParticle.java │ │ │ │ └── WaterDropParticle.java │ │ │ ├── purchase │ │ │ └── ChargebackStopper.java │ │ │ ├── reach │ │ │ └── ReachDisplay.java │ │ │ └── stats │ │ │ ├── AbstractHypixelStats.java │ │ │ ├── GuildStatsGui.java │ │ │ ├── PlayerStatsGui.java │ │ │ ├── StatsHandler.java │ │ │ ├── display │ │ │ ├── DisplayLine.java │ │ │ ├── DisplayTable.java │ │ │ └── StatsDisplayItem.java │ │ │ └── fields │ │ │ ├── ArcadeStats.java │ │ │ ├── ArenaStats.java │ │ │ ├── BedWarsStats.java │ │ │ ├── BlitzStats.java │ │ │ ├── BuildBattleStats.java │ │ │ ├── CVCStats.java │ │ │ ├── CrazyWallsStats.java │ │ │ ├── DuelsStats.java │ │ │ ├── GeneralStats.java │ │ │ ├── MegaWallsStats.java │ │ │ ├── MurderMysteryStats.java │ │ │ ├── PaintballStats.java │ │ │ ├── QuakecraftStats.java │ │ │ ├── SkyClashStats.java │ │ │ ├── SkyWarsStats.java │ │ │ ├── SmashHeroesStats.java │ │ │ ├── SpeedUHCStats.java │ │ │ ├── TKRStats.java │ │ │ ├── TNTGamesStats.java │ │ │ ├── UHCStats.java │ │ │ ├── VampireZStats.java │ │ │ ├── WallsStats.java │ │ │ └── WarlordsStats.java │ │ ├── integrations │ │ └── watchdog │ │ │ └── ThankWatchdog.java │ │ ├── internal │ │ ├── MemoryHelper.java │ │ ├── UpdateChecker.java │ │ └── addons │ │ │ ├── IAddon.java │ │ │ └── OverlayChecker.java │ │ ├── launch │ │ └── HyperiumTweaker.java │ │ ├── mixins │ │ ├── block │ │ │ └── MixinBlockGlass.java │ │ ├── client │ │ │ ├── MixinClientBrand.java │ │ │ ├── MixinLoadingScreenRenderer.java │ │ │ ├── MixinMinecraft.java │ │ │ ├── audio │ │ │ │ └── MixinSoundManager.java │ │ │ ├── entity │ │ │ │ ├── IMixinAbstractClientPlayer.java │ │ │ │ ├── MixinAbstractClientPlayer.java │ │ │ │ └── MixinEntityPlayerSP.java │ │ │ ├── gui │ │ │ │ ├── IMixinGui.java │ │ │ │ ├── IMixinGuiButton.java │ │ │ │ ├── IMixinGuiChat.java │ │ │ │ ├── IMixinGuiNewChat.java │ │ │ │ ├── IMixinGuiPlayerTabOverlay.java │ │ │ │ ├── IMixinGuiScreen.java │ │ │ │ ├── IMixinGuiScreenBook.java │ │ │ │ ├── MixinFontRenderer.java │ │ │ │ ├── MixinGuiButton.java │ │ │ │ ├── MixinGuiChat.java │ │ │ │ ├── MixinGuiControls.java │ │ │ │ ├── MixinGuiDisconnecting.java │ │ │ │ ├── MixinGuiGameOver.java │ │ │ │ ├── MixinGuiIngame.java │ │ │ │ ├── MixinGuiIngameMenu.java │ │ │ │ ├── MixinGuiMainMenu.java │ │ │ │ ├── MixinGuiMultiplayer.java │ │ │ │ ├── MixinGuiNewChat.java │ │ │ │ ├── MixinGuiOptions.java │ │ │ │ ├── MixinGuiOverlayDebug.java │ │ │ │ ├── MixinGuiPlayerTabOverlay.java │ │ │ │ ├── MixinGuiScreen.java │ │ │ │ ├── MixinGuiScreenResourcePacks.java │ │ │ │ ├── MixinGuiUtilRenderComponents.java │ │ │ │ ├── achievement │ │ │ │ │ └── MixinGuiAchievement.java │ │ │ │ └── inventory │ │ │ │ │ ├── IMixinGuiContainer.java │ │ │ │ │ ├── MixinGuiContainer.java │ │ │ │ │ ├── MixinGuiEditSign.java │ │ │ │ │ └── MixinGuiInventory.java │ │ │ ├── model │ │ │ │ ├── MixinModelBiped.java │ │ │ │ ├── MixinModelBox.java │ │ │ │ ├── MixinModelPlayer.java │ │ │ │ └── MixinModelRenderer.java │ │ │ ├── multiplayer │ │ │ │ ├── MixinGuiConnecting.java │ │ │ │ └── MixinServerList.java │ │ │ ├── network │ │ │ │ ├── IMixinNetworkPlayerInfo.java │ │ │ │ ├── MixinNetHandlerPlayClient.java │ │ │ │ └── MixinNetworkPlayerInfo.java │ │ │ ├── particle │ │ │ │ ├── IMixinEntityFX.java │ │ │ │ └── MixinEffectRenderer.java │ │ │ ├── renderer │ │ │ │ ├── IMixinEntityRenderer.java │ │ │ │ ├── IMixinInventoryEffectRenderer.java │ │ │ │ ├── IMixinItemRenderer.java │ │ │ │ ├── IMixinThreadDownloadImageData.java │ │ │ │ ├── MixinChunkRenderContainer.java │ │ │ │ ├── MixinEntityRenderer.java │ │ │ │ ├── MixinInventoryEffectRenderer.java │ │ │ │ ├── MixinItemRenderer.java │ │ │ │ ├── MixinRenderGlobal.java │ │ │ │ ├── MixinThreadDownloadImageData.java │ │ │ │ ├── chunk │ │ │ │ │ └── MixinRenderChunk.java │ │ │ │ ├── entity │ │ │ │ │ ├── IMixinRender.java │ │ │ │ │ ├── IMixinRenderItem.java │ │ │ │ │ ├── IMixinRenderItem2.java │ │ │ │ │ ├── IMixinRendererLivingEntity.java │ │ │ │ │ ├── MixinRender.java │ │ │ │ │ ├── MixinRenderEntityItem.java │ │ │ │ │ ├── MixinRenderFish.java │ │ │ │ │ ├── MixinRenderItem.java │ │ │ │ │ ├── MixinRenderLightningBolt.java │ │ │ │ │ ├── MixinRenderManger.java │ │ │ │ │ ├── MixinRenderPlayer.java │ │ │ │ │ ├── MixinRendererLivingEntity.java │ │ │ │ │ └── layers │ │ │ │ │ │ ├── MixinLayerArmorBase.java │ │ │ │ │ │ ├── MixinLayerCape.java │ │ │ │ │ │ ├── MixinLayerDeadmau5Head.java │ │ │ │ │ │ └── MixinLayerHeldItem.java │ │ │ │ ├── texture │ │ │ │ │ ├── IMixinTextureManager.java │ │ │ │ │ └── MixinTextureManager.java │ │ │ │ └── tileentity │ │ │ │ │ ├── MixinRenderItemFrame.java │ │ │ │ │ └── MixinTileEntityEndPortalRenderer.java │ │ │ ├── resources │ │ │ │ ├── IMixinAbstractResourcePack.java │ │ │ │ ├── IMixinResourcePackListEntry.java │ │ │ │ ├── MixinAbstractResourcePack.java │ │ │ │ ├── MixinLocale.java │ │ │ │ └── MixinResourcePackRepository.java │ │ │ └── settings │ │ │ │ ├── IMixinKeyBinding.java │ │ │ │ └── MixinGameSettings.java │ │ ├── crash │ │ │ └── MixinCrashReport.java │ │ ├── enchantment │ │ │ └── MixinEnchantment.java │ │ ├── entity │ │ │ ├── IMixinEntity.java │ │ │ ├── MixinEntity.java │ │ │ ├── MixinEntityLivingBase.java │ │ │ ├── item │ │ │ │ └── MixinEntityItem.java │ │ │ └── player │ │ │ │ ├── MixinEntityPlayer.java │ │ │ │ └── MixinEntityPlayerMP.java │ │ ├── item │ │ │ ├── MixinItemBow.java │ │ │ └── MixinItemStack.java │ │ ├── nbt │ │ │ ├── MixinNBTTagCompound.java │ │ │ └── MixinNBTUtil.java │ │ ├── network │ │ │ ├── MixinNetworkManager.java │ │ │ └── play │ │ │ │ ├── client │ │ │ │ └── MixinC01PacketChatMessage.java │ │ │ │ └── server │ │ │ │ ├── MixinS14PacketEntity.java │ │ │ │ ├── MixinS19PacketEntityHeadLook.java │ │ │ │ ├── MixinS19PacketEntityStatus.java │ │ │ │ └── MixinS2EPacketCloseWindow.java │ │ ├── scoreboard │ │ │ └── MixinScoreboard.java │ │ ├── server │ │ │ └── MixinMinecraftServer.java │ │ ├── util │ │ │ ├── MixinChatComponentStyle.java │ │ │ ├── MixinChatStyle.java │ │ │ ├── MixinMouseHelper.java │ │ │ ├── MixinMultiMap.java │ │ │ └── MixinScreenShotHelper.java │ │ └── world │ │ │ ├── IMixinWorld.java │ │ │ ├── MixinWorld.java │ │ │ ├── chunk │ │ │ └── MixinChunk.java │ │ │ └── gen │ │ │ └── feature │ │ │ └── MixinWorldGenBigTree.java │ │ ├── mixinsimp │ │ ├── client │ │ │ ├── HyperiumClientBrand.java │ │ │ ├── HyperiumMinecraft.java │ │ │ ├── audio │ │ │ │ └── HyperiumSoundManager.java │ │ │ ├── gui │ │ │ │ ├── HyperiumGuiChat.java │ │ │ │ ├── HyperiumGuiControls.java │ │ │ │ ├── HyperiumGuiIngame.java │ │ │ │ ├── HyperiumGuiMainMenu.java │ │ │ │ ├── HyperiumGuiNewChat.java │ │ │ │ ├── HyperiumGuiOptions.java │ │ │ │ ├── HyperiumGuiPlayerTabOverlay.java │ │ │ │ ├── HyperiumGuiScreen.java │ │ │ │ ├── HyperiumGuiScreenResourcePacks.java │ │ │ │ ├── HyperiumGuiUtilRenderComponents.java │ │ │ │ ├── IMixinGuiMultiplayer.java │ │ │ │ └── inventory │ │ │ │ │ └── HyperiumGuiContainer.java │ │ │ ├── model │ │ │ │ ├── IMixinModelBiped.java │ │ │ │ ├── IMixinModelBox.java │ │ │ │ ├── IMixinModelPlayer.java │ │ │ │ └── IMixinModelRenderer.java │ │ │ ├── multiplayer │ │ │ │ └── HyperiumServerList.java │ │ │ ├── particle │ │ │ │ └── IMixinEffectRenderer.java │ │ │ ├── renderer │ │ │ │ ├── HyperiumChunkRendererContainer.java │ │ │ │ ├── HyperiumEntityRenderer.java │ │ │ │ ├── HyperiumInventoryEffectRenderer.java │ │ │ │ ├── HyperiumItemRenderer.java │ │ │ │ ├── chunk │ │ │ │ │ └── HyperiumRenderChunk.java │ │ │ │ └── entity │ │ │ │ │ ├── HyperiumRender.java │ │ │ │ │ ├── HyperiumRenderItem.java │ │ │ │ │ ├── HyperiumRenderPlayer.java │ │ │ │ │ ├── HyperiumRendererLivingEntity.java │ │ │ │ │ ├── IMixinRenderManager.java │ │ │ │ │ ├── TwoPartLayerBipedArmor.java │ │ │ │ │ └── layers │ │ │ │ │ └── HyperiumLayerCape.java │ │ │ ├── resources │ │ │ │ ├── HyperiumAbstractResourcePack.java │ │ │ │ ├── HyperiumLocale.java │ │ │ │ └── HyperiumResourcePackRepository.java │ │ │ └── settings │ │ │ │ └── HyperiumGameSettings.java │ │ ├── crash │ │ │ └── HyperiumCrashReport.java │ │ ├── enchantment │ │ │ └── HyperiumEnchantment.java │ │ ├── entity │ │ │ ├── HyperiumEntity.java │ │ │ ├── HyperiumEntityLivingBase.java │ │ │ └── player │ │ │ │ ├── HyperiumEntityPlayer.java │ │ │ │ ├── HyperiumEntityPlayerMP.java │ │ │ │ └── IMixinEntityPlayer.java │ │ ├── scoreboard │ │ │ └── HyperiumScoreboard.java │ │ ├── util │ │ │ ├── HyperiumChatComponentStyle.java │ │ │ ├── HyperiumChatStyle.java │ │ │ └── HyperiumScreenshotHelper.java │ │ └── world │ │ │ └── HyperiumWorld.java │ │ ├── mods │ │ ├── AbstractMod.java │ │ ├── HyperiumModIntegration.java │ │ ├── autogg │ │ │ ├── AutoGG.java │ │ │ ├── AutoGGListener.java │ │ │ ├── commands │ │ │ │ └── GGCommand.java │ │ │ └── config │ │ │ │ └── AutoGGConfig.java │ │ ├── blockoverlay │ │ │ ├── BlockOverlay.java │ │ │ ├── BlockOverlayColor.java │ │ │ ├── BlockOverlayCommand.java │ │ │ ├── BlockOverlayGui.java │ │ │ ├── BlockOverlayMode.java │ │ │ ├── BlockOverlayRender.java │ │ │ └── BlockOverlaySettings.java │ │ ├── bossbar │ │ │ └── BossbarGui.java │ │ ├── chromahud │ │ │ ├── ChromaHUD.java │ │ │ ├── ChromaHUDApi.java │ │ │ ├── DefaultChromaHUDParser.java │ │ │ ├── DisplayElement.java │ │ │ ├── ElementRenderer.java │ │ │ ├── HyperiumChromaHudParser.java │ │ │ ├── NumberUtil.java │ │ │ ├── api │ │ │ │ ├── ButtonConfig.java │ │ │ │ ├── ChromaHUDDescription.java │ │ │ │ ├── ChromaHUDParser.java │ │ │ │ ├── Dimension.java │ │ │ │ ├── DisplayItem.java │ │ │ │ ├── StringConfig.java │ │ │ │ └── TextConfig.java │ │ │ ├── commands │ │ │ │ └── CommandChromaHUD.java │ │ │ ├── displayitems │ │ │ │ ├── chromahud │ │ │ │ │ ├── ArmourHud.java │ │ │ │ │ ├── ArrowCount.java │ │ │ │ │ ├── CCounter.java │ │ │ │ │ ├── CordsDisplay.java │ │ │ │ │ ├── CpsDisplay.java │ │ │ │ │ ├── DirectionHUD.java │ │ │ │ │ ├── FPS.java │ │ │ │ │ ├── PingDisplay.java │ │ │ │ │ ├── PotionEffects.java │ │ │ │ │ ├── TextItem.java │ │ │ │ │ └── TimeHud.java │ │ │ │ └── hyperium │ │ │ │ │ ├── CoinsDisplay.java │ │ │ │ │ ├── DoubleCPSDisplay.java │ │ │ │ │ ├── HyperiumInfoDisplay.java │ │ │ │ │ ├── HypixelDisplay.java │ │ │ │ │ ├── LocationDisplay.java │ │ │ │ │ ├── MemoryDisplay.java │ │ │ │ │ ├── PlayerDisplay.java │ │ │ │ │ ├── ReachDisplay.java │ │ │ │ │ ├── ScoreboardDisplay.java │ │ │ │ │ └── ToggleSprintStatus.java │ │ │ └── gui │ │ │ │ ├── AddItemsGui.java │ │ │ │ ├── DisplayElementConfig.java │ │ │ │ ├── EditItemsGui.java │ │ │ │ ├── GeneralConfigGui.java │ │ │ │ └── MoveElementGui.java │ │ ├── chunkanimator │ │ │ ├── AnimationHandler.java │ │ │ ├── ChunkAnimator.java │ │ │ └── ChunkAnimatorConfig.java │ │ ├── common │ │ │ ├── PerspectiveModifierHandler.java │ │ │ ├── SoundHandler.java │ │ │ └── ToggleSprintContainer.java │ │ ├── discord │ │ │ ├── DiscordPresence.java │ │ │ └── RPCUpdater.java │ │ ├── entityradius │ │ │ └── EntityRadius.java │ │ ├── glintcolorizer │ │ │ ├── Colors.java │ │ │ └── GlintColorizer.java │ │ ├── itemphysic │ │ │ ├── EventHandlerLite.java │ │ │ ├── ItemDummyContainer.java │ │ │ ├── ItemPhysicMod.java │ │ │ └── physics │ │ │ │ └── ClientPhysic.java │ │ ├── keystrokes │ │ │ ├── CommandKeystrokes.java │ │ │ ├── KeystrokesMod.java │ │ │ ├── config │ │ │ │ └── KeystrokesSettings.java │ │ │ ├── keys │ │ │ │ ├── AbstractKey.java │ │ │ │ └── impl │ │ │ │ │ ├── CPSKey.java │ │ │ │ │ ├── CustomKey.java │ │ │ │ │ ├── FPSKey.java │ │ │ │ │ ├── Key.java │ │ │ │ │ ├── MouseButton.java │ │ │ │ │ └── SpaceKey.java │ │ │ ├── render │ │ │ │ ├── CustomKeyWrapper.java │ │ │ │ └── KeystrokesRenderer.java │ │ │ └── screen │ │ │ │ ├── GuiScreenBackgroundColor.java │ │ │ │ ├── GuiScreenColor.java │ │ │ │ ├── GuiScreenEditKeys.java │ │ │ │ ├── GuiScreenKeystrokes.java │ │ │ │ ├── IScreen.java │ │ │ │ ├── IScrollable.java │ │ │ │ └── impl │ │ │ │ ├── GuiSliderFadeTime.java │ │ │ │ ├── GuiSliderOpacity.java │ │ │ │ └── GuiSliderScale.java │ │ ├── levelhead │ │ │ ├── Levelhead.java │ │ │ ├── auth │ │ │ │ └── MojangAuth.java │ │ │ ├── command │ │ │ │ ├── CustomLevelheadCommand.java │ │ │ │ └── LevelheadCommand.java │ │ │ ├── config │ │ │ │ └── MasterConfig.java │ │ │ ├── display │ │ │ │ ├── AboveHeadDisplay.java │ │ │ │ ├── ChatDisplay.java │ │ │ │ ├── DisplayConfig.java │ │ │ │ ├── DisplayManager.java │ │ │ │ ├── DisplayPosition.java │ │ │ │ ├── LevelheadDisplay.java │ │ │ │ └── TabDisplay.java │ │ │ ├── guis │ │ │ │ ├── CustomLevelheadConfigurer.java │ │ │ │ └── LevelheadGui.java │ │ │ ├── purchases │ │ │ │ └── LevelheadPurchaseStates.java │ │ │ ├── renderer │ │ │ │ ├── AboveHeadRenderer.java │ │ │ │ ├── LevelheadChatRenderer.java │ │ │ │ ├── LevelheadComponent.java │ │ │ │ ├── LevelheadTag.java │ │ │ │ └── NullLevelheadTag.java │ │ │ └── util │ │ │ │ └── LevelheadJsonHolder.java │ │ ├── motionblur │ │ │ ├── MotionBlurCommand.java │ │ │ ├── MotionBlurMod.java │ │ │ └── resource │ │ │ │ ├── MotionBlurResource.java │ │ │ │ └── MotionBlurResourceManager.java │ │ ├── myposition │ │ │ └── MyPosition.java │ │ ├── nickhider │ │ │ ├── NickHider.java │ │ │ ├── command │ │ │ │ └── CommandNickHider.java │ │ │ └── config │ │ │ │ └── NickHiderConfig.java │ │ ├── oldanimations │ │ │ ├── AnimationEventHandler.java │ │ │ ├── OldAnimations.java │ │ │ └── OldBlocking.java │ │ ├── sk1ercommon │ │ │ ├── GenKeyCallback.java │ │ │ ├── Multithreading.java │ │ │ ├── ResolutionUtil.java │ │ │ └── Sk1erMod.java │ │ ├── statistics │ │ │ └── GeneralStatisticsTracking.java │ │ ├── timechanger │ │ │ ├── TimeChanger.java │ │ │ └── commands │ │ │ │ ├── CommandTimeChangerDay.java │ │ │ │ ├── CommandTimeChangerFastTime.java │ │ │ │ ├── CommandTimeChangerNight.java │ │ │ │ ├── CommandTimeChangerReset.java │ │ │ │ └── CommandTimeChangerSunset.java │ │ └── togglechat │ │ │ ├── ToggleChatEvents.java │ │ │ ├── ToggleChatMod.java │ │ │ ├── commands │ │ │ └── CommandToggleChat.java │ │ │ ├── config │ │ │ └── ToggleChatConfig.java │ │ │ ├── gui │ │ │ └── ToggleChatMainGui.java │ │ │ └── toggles │ │ │ ├── ToggleBase.java │ │ │ ├── ToggleBaseHandler.java │ │ │ └── defaults │ │ │ ├── TypeAds.java │ │ │ ├── TypeAfterGift.java │ │ │ ├── TypeBoop.java │ │ │ ├── TypeBuildBattle.java │ │ │ ├── TypeColored.java │ │ │ ├── TypeEasy.java │ │ │ ├── TypeFriendRequests.java │ │ │ ├── TypeGlobal.java │ │ │ ├── TypeGuild.java │ │ │ ├── TypeHousing.java │ │ │ ├── TypeJoin.java │ │ │ ├── TypeLeave.java │ │ │ ├── TypeLobbyJoin.java │ │ │ ├── TypeMessageSeparator.java │ │ │ ├── TypeMessages.java │ │ │ ├── TypeMysteryBox.java │ │ │ ├── TypeOfficer.java │ │ │ ├── TypeParty.java │ │ │ ├── TypePartyInvites.java │ │ │ ├── TypeShout.java │ │ │ ├── TypeSoulWell.java │ │ │ ├── TypeSpecial.java │ │ │ ├── TypeSpectator.java │ │ │ └── TypeTeam.java │ │ ├── network │ │ ├── LoginReplyHandler.java │ │ └── NetworkHandler.java │ │ ├── purchases │ │ ├── AbstractHyperiumPurchase.java │ │ ├── DefaultCosmetic.java │ │ ├── EnumPurchaseType.java │ │ ├── HyperiumPurchase.java │ │ ├── PurchaseApi.java │ │ ├── PurchaseSettings.java │ │ └── packages │ │ │ ├── DragonHeadCosmetic.java │ │ │ ├── EarsCosmetic.java │ │ │ ├── FlipCosmeticPackage.java │ │ │ ├── ParticleBackgroundCosmetic.java │ │ │ └── WingCosmetic.java │ │ └── utils │ │ ├── AddonWorkspaceResourcePack.java │ │ ├── BetterJsonObject.java │ │ ├── ChatColor.java │ │ ├── ChatUtil.java │ │ ├── GlStateModifier.java │ │ ├── GraphicsUtil.java │ │ ├── HyperiumCapeUtils.java │ │ ├── HyperiumFontRenderer.java │ │ ├── IGlStateModifier.java │ │ ├── MouseListener.java │ │ ├── RenderUtils.java │ │ ├── SimpleAnimValue.java │ │ ├── StaffUtils.java │ │ ├── UUIDUtil.java │ │ ├── UpdateUtils.java │ │ ├── Utils.java │ │ ├── VersionAPIUtils.java │ │ ├── mods │ │ ├── AddonCheckerUtil.java │ │ ├── AsyncScreenshotSaver.java │ │ ├── CompactChat.java │ │ ├── FPSLimiter.java │ │ └── ImgurUploader.java │ │ └── staff │ │ └── StaffSettings.java ├── club │ └── sk1er │ │ └── website │ │ ├── Pet.java │ │ ├── api │ │ └── requests │ │ │ ├── HypixelApiFriendObject.java │ │ │ ├── HypixelApiFriends.java │ │ │ ├── HypixelApiGuild.java │ │ │ ├── HypixelApiObject.java │ │ │ └── HypixelApiPlayer.java │ │ └── utils │ │ └── WebsiteUtils.java ├── com │ └── chattriggers │ │ └── ctjs │ │ └── loader │ │ └── UriScheme.java ├── me │ └── semx11 │ │ └── autotip │ │ ├── Autotip.java │ │ ├── api │ │ ├── GetBuilder.java │ │ ├── RequestHandler.java │ │ ├── RequestType.java │ │ ├── SessionKey.java │ │ ├── reply │ │ │ ├── Reply.java │ │ │ └── impl │ │ │ │ ├── KeepAliveReply.java │ │ │ │ ├── LocaleReply.java │ │ │ │ ├── LoginReply.java │ │ │ │ ├── LogoutReply.java │ │ │ │ ├── SettingsReply.java │ │ │ │ └── TipReply.java │ │ └── request │ │ │ ├── Request.java │ │ │ └── impl │ │ │ ├── KeepAliveRequest.java │ │ │ ├── LocaleRequest.java │ │ │ ├── LoginRequest.java │ │ │ ├── LogoutRequest.java │ │ │ ├── SettingsRequest.java │ │ │ └── TipRequest.java │ │ ├── chat │ │ ├── ChatComponentBuilder.java │ │ ├── KeyHelper.java │ │ ├── LocaleHolder.java │ │ ├── MessageOption.java │ │ └── MessageUtil.java │ │ ├── command │ │ ├── CommandAbstract.java │ │ └── impl │ │ │ ├── CommandAutotip.java │ │ │ └── CommandLimbo.java │ │ ├── config │ │ ├── Config.java │ │ └── GlobalSettings.java │ │ ├── core │ │ ├── MigrationManager.java │ │ ├── SessionManager.java │ │ ├── StatsManager.java │ │ └── TaskManager.java │ │ ├── event │ │ ├── Event.java │ │ └── impl │ │ │ ├── EventChatReceived.java │ │ │ ├── EventClientConnection.java │ │ │ └── EventClientTick.java │ │ ├── gson │ │ ├── adapter │ │ │ ├── TypeAdapter.java │ │ │ └── impl │ │ │ │ ├── LocaleAdapter.java │ │ │ │ ├── PatternAdapter.java │ │ │ │ ├── SessionKeyAdapter.java │ │ │ │ └── VersionAdapter.java │ │ ├── creator │ │ │ ├── ConfigCreator.java │ │ │ ├── StatsDailyCreator.java │ │ │ └── StatsMessageCreator.java │ │ └── exclusion │ │ │ ├── AnnotationExclusionStrategy.java │ │ │ └── Exclude.java │ │ ├── message │ │ ├── HoverMessage.java │ │ ├── HoverMessageMatcher.java │ │ ├── Message.java │ │ ├── MessageMatcher.java │ │ ├── StatsMessage.java │ │ ├── StatsMessageMatcher.java │ │ └── StatsType.java │ │ ├── stats │ │ ├── Coins.java │ │ ├── Stats.java │ │ ├── StatsDaily.java │ │ └── StatsRange.java │ │ ├── universal │ │ ├── ReflectionUtil.java │ │ └── UniversalUtil.java │ │ └── util │ │ ├── ErrorReport.java │ │ ├── FileUtil.java │ │ ├── HashUtil.java │ │ ├── MinecraftVersion.java │ │ ├── StringUtil.java │ │ ├── Version.java │ │ └── VersionInfo.java └── net │ ├── hypixel │ └── api │ │ ├── GameType.java │ │ └── util │ │ └── ILeveling.java │ └── minecraftforge │ └── fml │ └── client │ └── config │ ├── GuiButtonExt.java │ ├── GuiSlider.java │ └── GuiUtils.java ├── kotlin ├── cc │ └── hyperium │ │ ├── Metadata.kt │ │ ├── gui │ │ └── main │ │ │ └── components │ │ │ ├── OverlayButton.kt │ │ │ ├── OverlayLabel.kt │ │ │ ├── OverlaySelector.kt │ │ │ └── OverlaySlider.kt │ │ └── internal │ │ └── addons │ │ ├── AddonBootstrap.kt │ │ ├── AddonManifest.kt │ │ ├── AddonMinecraftBootstrap.kt │ │ ├── annotations │ │ └── Instance.kt │ │ ├── misc │ │ ├── AddonLoadException.kt │ │ └── AddonManifestParser.kt │ │ ├── strategy │ │ ├── AddonLoaderStrategy.kt │ │ ├── DefaultAddonLoader.kt │ │ └── WorkspaceAddonLoader.kt │ │ └── translate │ │ ├── AbstractTranslator.kt │ │ ├── ITranslator.kt │ │ ├── InstanceTranslator.kt │ │ ├── MixinTranslator.kt │ │ └── TransformerTranslator.kt └── com │ └── chattriggers │ └── ctjs │ ├── CTJS.kt │ ├── Reference.kt │ ├── commands │ ├── CTCommand.kt │ ├── Command.kt │ └── CommandHandler.kt │ ├── engine │ ├── DefaultLoader.kt │ ├── ILoader.kt │ ├── IRegister.kt │ ├── ModuleManager.kt │ ├── langs │ │ └── js │ │ │ ├── Impl.kt │ │ │ └── JSLoader.kt │ └── module │ │ ├── Module.kt │ │ ├── ModuleMetadata.kt │ │ └── ModulesGui.kt │ ├── minecraft │ ├── libs │ │ ├── ChatLib.kt │ │ ├── EventLib.kt │ │ ├── FileLib.kt │ │ ├── MathLib.kt │ │ ├── Tessellator.kt │ │ ├── XMLHttpRequest.kt │ │ └── renderer │ │ │ ├── Image.kt │ │ │ ├── Rectangle.kt │ │ │ ├── Renderer.kt │ │ │ ├── Shape.kt │ │ │ └── Text.kt │ ├── listeners │ │ ├── ChatListener.kt │ │ ├── ClientListener.kt │ │ └── WorldListener.kt │ ├── objects │ │ ├── Book.kt │ │ ├── KeyBind.kt │ │ ├── ParticleEffect.kt │ │ ├── Sound.kt │ │ ├── display │ │ │ ├── Display.kt │ │ │ ├── DisplayHandler.kt │ │ │ └── DisplayLine.kt │ │ ├── gui │ │ │ ├── Gui.kt │ │ │ └── GuiHandler.kt │ │ └── message │ │ │ ├── Message.kt │ │ │ └── TextComponent.kt │ └── wrappers │ │ ├── CPS.kt │ │ ├── Client.kt │ │ ├── Player.kt │ │ ├── Scoreboard.kt │ │ ├── Server.kt │ │ ├── TabList.kt │ │ ├── World.kt │ │ └── objects │ │ ├── Chunk.kt │ │ ├── Entity.kt │ │ ├── Particle.kt │ │ ├── PlayerMP.kt │ │ ├── PotionEffect.kt │ │ ├── block │ │ ├── Block.kt │ │ └── Sign.kt │ │ ├── inventory │ │ ├── Inventory.kt │ │ ├── Item.kt │ │ └── action │ │ │ ├── Action.kt │ │ │ ├── ClickAction.kt │ │ │ ├── DragAction.kt │ │ │ ├── DropAction.kt │ │ │ └── KeyAction.kt │ │ └── threading │ │ ├── ThreadHandler.kt │ │ └── WrappedThread.kt │ ├── triggers │ ├── OnChatTrigger.kt │ ├── OnCommandTrigger.kt │ ├── OnRegularTrigger.kt │ ├── OnRenderTrigger.kt │ ├── OnSoundPlayTrigger.kt │ ├── OnStepTrigger.kt │ ├── OnTrigger.kt │ └── TriggerType.kt │ └── utils │ ├── Cancellable.kt │ ├── UriScheme.kt │ ├── Utils.kt │ ├── capes │ ├── CapeHandler.kt │ └── LayerCape.kt │ ├── config │ ├── Config.kt │ ├── ConfigAnnotations.kt │ ├── ConfigBoolean.kt │ ├── ConfigColor.kt │ ├── ConfigOption.kt │ ├── ConfigString.kt │ ├── ConfigStringSelector.kt │ ├── GuiConfig.kt │ └── IconHandler.kt │ ├── console │ ├── Console.kt │ └── TextAreaOutputStream.kt │ └── kotlin │ ├── Annotations.kt │ ├── Extensions.kt │ └── TypeAliases.kt └── resources ├── UriScheme.class ├── assets ├── hyperium │ ├── fonts │ │ ├── Montserrat-Regular.ttf │ │ ├── Raleway-SemiBold.ttf │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Regular.ttf │ │ ├── RobotoCondensed-Regular.ttf │ │ └── SegoeUI-Light.ttf │ ├── icons │ │ ├── icon-16x.png │ │ └── icon-32x.png │ ├── lang │ │ ├── af_ZA.lang │ │ ├── ar_SA.lang │ │ ├── bs_BA.lang │ │ ├── de_DE.lang │ │ ├── en_US.lang │ │ ├── ga_IE.lang │ │ └── ja_JP.lang │ └── pack.mcmeta └── minecraft │ ├── shaders │ └── hyperium_blur.json │ ├── sounds.json │ ├── sounds │ └── zoo.ogg │ └── textures │ ├── chromahud │ └── iconsheet.png │ ├── cosmetics │ ├── companions │ │ └── hamsterbrown.png │ ├── hats │ │ ├── fez.png │ │ ├── lego.png │ │ └── tophat.png │ └── wings │ │ └── dragonwings.png │ ├── font │ ├── Montserrat-Bold.png │ ├── Montserrat-Bold.properties │ ├── Montserrat-Light.png │ ├── Montserrat-Light.properties │ ├── Montserrat-Regular.png │ └── Montserrat-Regular.properties │ ├── hyperium-splash.png │ ├── material │ ├── arrow_down_alt.png │ ├── arrow_left.png │ ├── arrow_right.png │ ├── arrow_up_alt.png │ ├── backgrounds │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ └── 7.png │ ├── close.png │ ├── exit.png │ ├── extension.png │ └── settings.png │ └── world-loading.png ├── log4j2.xml ├── mixins.hyperium.json ├── providedLibs.js └── remoteresources └── chat_regex.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome!: https://editorconfig.org 2 | 3 | # This is the main EditorConfig file: 4 | root = true 5 | 6 | # Have Java and Kotlin files in UTF-8 and put an extra line at the bottom of each file: 7 | [*.{java,kt}] 8 | charset = utf-8 9 | insert_final_newline = true 10 | 11 | # Set intents for Java files: 12 | [*.java] 13 | indent_style = space 14 | indent_size = 4 15 | 16 | # Set indents for the Travis CI config and all JSON files: 17 | [{.travis.yml,*.json}] 18 | indent_style = space 19 | indent_size = 2 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve our client 4 | 5 | --- 6 | 7 | 8 | **Describe the bug** 9 | 10 | 11 | **To Reproduce** 12 | Steps to reproduce the behavior: 13 | 1. 14 | 2. 15 | 3. 16 | 17 | **Expected behavior** 18 | 19 | 20 | **Screenshots** 21 | 22 | 23 | **Desktop (please complete the following information):** 24 | - OS: [e.g. Windows 10] 25 | - Version [e.g. Hyperium Beta Build 1337] 26 | 27 | **Additional context** 28 | 29 | 30 | **Logs** 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/crash_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Crash report 3 | about: If Hyperium crashed, you can report it here 4 | 5 | --- 6 | 7 | 8 | **Cause** 9 | Steps to reproduce the crash: 10 | 1. 11 | 2. 12 | 3. 13 | 14 | **Desktop (please complete the following information):** 15 | - OS: [e.g. Windows 10] 16 | - Version [e.g. Hyperium Beta Build 1337] 17 | 18 | **Additional context** 19 | 20 | 21 | **Logs** 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | 8 | **Is your feature request related to a problem? If so, please describe.** 9 | 10 | 11 | **Describe the solution you'd like** 12 | 13 | 14 | **Describe alternatives you've considered** 15 | 16 | 17 | **Additional context** 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | ## Description 3 | 4 | 5 | ## Context 6 | 7 | 8 | ## Anything Else 9 | 10 | 11 | ## Checklist 12 | 13 | - [] All *new* Java and Kotlin files have the right copyright header 14 | - [] I have tested my code by building it locally 15 | - [] This is not a work-in-progress and is ready for merge 16 | - [] I am submitting the PR under and understand the terms of the GNU Lesser General Public License v3.0 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # eclipse 3 | eclipse 4 | bin 5 | *.launch 6 | .settings 7 | .metadata 8 | .classpath 9 | .project 10 | 11 | # idea 12 | out 13 | classes 14 | *.ipr 15 | *.iws 16 | *.iml 17 | .idea 18 | 19 | # gradle 20 | build 21 | .gradle 22 | 23 | #Netbeans 24 | .nb-gradle 25 | .nb-gradle-properties 26 | 27 | # other 28 | run 29 | .DS_Store 30 | Thumbs.db -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hyperium is no longer available. 2 | 3 | Hyperium is no longer available, and we will no longer provide support for it. [Click here](https://https://github.com/asbyth/Hyperium-Replacements) to find a list of replacement Forge mods. 4 | 5 | And as one last goodbye, we wanted to appreciate everyone that has contributed anything to Hyperium in any way. 6 | This could be anyone that has translated it, contributed to the code, helped support another user, and of course everyone that's used Hyperium. 7 | It's been a good run! 8 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # kotlin settings 2 | kotlin.code.style=official 3 | 4 | # optimize gradle 5 | org.gradle.daemon=true 6 | org.gradle.parallel=true 7 | org.gradle.configureoncommand=true 8 | org.gradle.parallel.threads=4 9 | org.gradle.jvmargs=-Xmx3G 10 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Sep 01 11:56:42 CEST 2019 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /libs/Netty Client.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/libs/Netty Client.jar -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | 19 | rootProject.name = 'Hyperium' -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/addons/customcrosshair/gui/items/CCCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.addons.customcrosshair.gui.items; 19 | 20 | public interface CCCallback { 21 | 22 | void run(boolean enabled); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/addons/readme.md: -------------------------------------------------------------------------------- 1 | #####In an effort to increase stability and maintain the client, many addons are being put inside the client. Put them in this package. Each addon should have its own sub package from here. 2 | - Initialize addons in the InternalAddons class -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/addons/sidebar/gui/screen/GuiScreenHelper.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.addons.sidebar.gui.screen; 2 | 3 | import cc.hyperium.utils.ChatColor; 4 | 5 | public interface GuiScreenHelper { 6 | default String getSuffix(boolean enabled) { 7 | return enabled ? (ChatColor.GREEN + "Enabled") : (ChatColor.RED + "Disabled"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/commands/CommandException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.commands; 19 | 20 | /** 21 | * Generic exception for command handling which triggers the message 22 | * to be sent to the players chat 23 | */ 24 | public class CommandException extends Exception { 25 | 26 | /** 27 | * Basic constructor for no arguments 28 | */ 29 | public CommandException() { 30 | super(); 31 | } 32 | 33 | public CommandException(String message) { 34 | super(message); 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/commands/CommandUsageException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.commands; 19 | 20 | /** 21 | * An exception caused by invalid command usage, will log the command 22 | * usage to the client (instead of anything else) 23 | * 24 | * @author boomboompower 25 | */ 26 | public class CommandUsageException extends CommandException { 27 | 28 | /** 29 | * Default constructor for this class 30 | */ 31 | public CommandUsageException() { 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/commands/defaults/CommandBossbarGui.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.commands.defaults; 2 | 3 | import cc.hyperium.Hyperium; 4 | import cc.hyperium.commands.BaseCommand; 5 | import cc.hyperium.mods.bossbar.BossbarGui; 6 | 7 | import java.util.Collections; 8 | import java.util.List; 9 | 10 | public class CommandBossbarGui implements BaseCommand { 11 | 12 | @Override 13 | public String getName() { 14 | return "bossbar"; 15 | } 16 | 17 | @Override 18 | public String getUsage() { 19 | return "/bossbar"; 20 | } 21 | 22 | @Override 23 | public void onExecute(String[] args) { 24 | Hyperium.INSTANCE.getHandlers().getGuiDisplayHandler().setDisplayNextTick(new BossbarGui()); 25 | } 26 | 27 | @Override 28 | public List getCommandAliases() { 29 | return Collections.singletonList("bb"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/commands/defaults/CommandParticleAuras.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.commands.defaults; 19 | 20 | import cc.hyperium.commands.BaseCommand; 21 | import cc.hyperium.gui.ParticleGui; 22 | 23 | public class CommandParticleAuras implements BaseCommand { 24 | @Override 25 | public String getName() { 26 | return "particleaura"; 27 | } 28 | 29 | @Override 30 | public String getUsage() { 31 | return "/particleaura"; 32 | } 33 | 34 | @Override 35 | public void onExecute(String[] args) { 36 | new ParticleGui().show(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/config/PostConfigHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.config; 19 | 20 | public interface PostConfigHandler { 21 | 22 | void postUpdate(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/config/PreConfigHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.config; 19 | 20 | public interface PreConfigHandler { 21 | 22 | void preUpdate(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/config/PreSaveHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.config; 19 | 20 | public interface PreSaveHandler { 21 | 22 | void preSave(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/config/ToggleSetting.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.config; 19 | 20 | import java.lang.annotation.ElementType; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | /* 26 | * Created by Cubxity on 03/06/2018 27 | */ 28 | @Retention(RetentionPolicy.RUNTIME) 29 | @Target(ElementType.FIELD) 30 | public @interface ToggleSetting { 31 | String name(); 32 | 33 | boolean enabled() default true; 34 | 35 | Category category() default Category.GENERAL; 36 | 37 | boolean mods() default false; 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/cosmetics/deadmau5/Deadmau5Cosmetic.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.cosmetics.deadmau5; 19 | 20 | import cc.hyperium.cosmetics.AbstractCosmetic; 21 | import cc.hyperium.purchases.EnumPurchaseType; 22 | 23 | public class Deadmau5Cosmetic extends AbstractCosmetic { 24 | public Deadmau5Cosmetic() { 25 | super(true, EnumPurchaseType.DEADMAU5_COSMETIC); 26 | } 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/cosmetics/dragon/DragonCosmetic.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.cosmetics.dragon; 19 | 20 | import cc.hyperium.cosmetics.AbstractCosmetic; 21 | import cc.hyperium.event.EventBus; 22 | import cc.hyperium.purchases.EnumPurchaseType; 23 | 24 | public class DragonCosmetic extends AbstractCosmetic { 25 | 26 | public DragonCosmetic() { 27 | super(false, EnumPurchaseType.DRAGON_HEAD); 28 | DragonHeadRenderer renderer = new DragonHeadRenderer(this); 29 | EventBus.INSTANCE.register(renderer); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/cosmetics/flip/FlipCosmetic.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.cosmetics.flip; 19 | 20 | import cc.hyperium.cosmetics.AbstractCosmetic; 21 | import cc.hyperium.purchases.EnumPurchaseType; 22 | 23 | public class FlipCosmetic extends AbstractCosmetic { 24 | public FlipCosmetic() { 25 | super(true, EnumPurchaseType.FLIP_COSMETIC); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/CancellableEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event; 19 | 20 | public class CancellableEvent extends Event { 21 | 22 | private boolean cancelled; 23 | 24 | public void setCancelled(boolean cancelled) { 25 | this.cancelled = cancelled; 26 | } 27 | 28 | public boolean isCancelled() { 29 | return cancelled; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/Event.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event; 19 | 20 | /** 21 | * Core event class 22 | */ 23 | public class Event { 24 | public void post() { 25 | EventBus.INSTANCE.post(this); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/InvokeEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event; 19 | 20 | import java.lang.annotation.ElementType; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | /** 26 | * Assign to a method to invoke an event 27 | * The first parameter of the method should be the event it is calling 28 | */ 29 | @Retention(RetentionPolicy.RUNTIME) 30 | @Target(ElementType.METHOD) 31 | public @interface InvokeEvent { 32 | 33 | Priority priority() default Priority.NORMAL; 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/Priority.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event; 19 | 20 | public enum Priority { 21 | 22 | HIGH(-1), // Called first 23 | NORMAL(0), 24 | LOW(1); // Called last 25 | 26 | public final int value; 27 | 28 | Priority(int value) { 29 | this.value = value; 30 | } 31 | 32 | public int getValue() { 33 | return value; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/client/GameShutDownEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.client; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Called when the game is shutting down, use this to save your configs 24 | */ 25 | public class GameShutDownEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/client/InitializationEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.client; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked once the client has started 24 | */ 25 | public class InitializationEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/client/PreInitializationEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.client; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked once the client has started 24 | */ 25 | public class PreInitializationEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/client/TickEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.client; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked every tick 24 | */ 25 | public class TickEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/entity/FovUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.event.entity; 2 | 3 | import cc.hyperium.event.Event; 4 | import net.minecraft.entity.player.EntityPlayer; 5 | 6 | public class FovUpdateEvent extends Event { 7 | 8 | private final EntityPlayer player; 9 | private final float currentFov; 10 | private float newFov; 11 | 12 | public FovUpdateEvent(EntityPlayer player, float fov) { 13 | this.player = player; 14 | this.currentFov = fov; 15 | this.newFov = fov; 16 | } 17 | 18 | public EntityPlayer getPlayer() { 19 | return player; 20 | } 21 | 22 | public float getCurrentFov() { 23 | return currentFov; 24 | } 25 | 26 | public float getNewFov() { 27 | return newFov; 28 | } 29 | 30 | public void setNewFov(float newFov) { 31 | this.newFov = newFov; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/entity/KillEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.entity; 19 | 20 | import cc.hyperium.event.Event; 21 | import com.google.common.base.Preconditions; 22 | import org.jetbrains.annotations.NotNull; 23 | 24 | public final class KillEvent extends Event { 25 | 26 | @NotNull 27 | private final String user; 28 | 29 | public KillEvent(@NotNull String user) { 30 | Preconditions.checkNotNull(user, "user"); 31 | 32 | this.user = user; 33 | } 34 | 35 | @NotNull 36 | public final String getUser() { 37 | return user; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/gui/InitGuiEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.gui; 19 | 20 | import net.minecraft.client.gui.GuiScreen; 21 | 22 | public class InitGuiEvent { 23 | private GuiScreen screen; 24 | 25 | public InitGuiEvent(GuiScreen screen) { 26 | this.screen = screen; 27 | } 28 | 29 | public GuiScreen getScreen() { 30 | return screen; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/interact/KeyPressEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.interact; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked once a key is pressed 24 | */ 25 | public class KeyPressEvent extends Event { 26 | 27 | private final int key; 28 | private final boolean repeat; 29 | 30 | public KeyPressEvent(int key, boolean isRepeat) { 31 | this.key = key; 32 | repeat = isRepeat; 33 | } 34 | 35 | public int getKey() { 36 | return key; 37 | } 38 | 39 | public boolean isRepeat() { 40 | return repeat; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/interact/LeftMouseClickEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.interact; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked once left mouse is pressed 24 | */ 25 | public class LeftMouseClickEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/interact/RightMouseClickEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.interact; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked once right mouse is pressed 24 | */ 25 | public class RightMouseClickEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/network/chat/ChatEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.network.chat; 19 | 20 | import cc.hyperium.event.CancellableEvent; 21 | import net.minecraft.util.IChatComponent; 22 | 23 | /** 24 | * Invoked once a chat message is sent 25 | */ 26 | public class ChatEvent extends CancellableEvent { 27 | 28 | private final IChatComponent chat; 29 | 30 | public ChatEvent(IChatComponent chat) { 31 | this.chat = chat; 32 | } 33 | 34 | public IChatComponent getChat() { 35 | return chat; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/network/server/ServerLeaveEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.network.server; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked once the player has left a server 24 | */ 25 | public class ServerLeaveEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/network/server/SingleplayerJoinEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.network.server; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked once the player has joined singleplayer 24 | */ 25 | public class SingleplayerJoinEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/network/server/hypixel/HypixelGetCoinsEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.network.server.hypixel; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | public final class HypixelGetCoinsEvent extends Event { 23 | 24 | private final int coins; 25 | 26 | public HypixelGetCoinsEvent(int coins) { 27 | this.coins = coins; 28 | } 29 | 30 | public final int getCoins() { 31 | return coins; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/network/server/hypixel/HypixelGetXPEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.network.server.hypixel; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | public final class HypixelGetXPEvent extends Event { 23 | 24 | private final int xp; 25 | 26 | public HypixelGetXPEvent(int xp) { 27 | this.xp = xp; 28 | } 29 | 30 | public final int getXp() { 31 | return xp; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/network/server/hypixel/JoinMinigameEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.network.server.hypixel; 19 | 20 | import cc.hyperium.event.network.server.hypixel.minigames.Minigame; 21 | 22 | /** 23 | * Invoked when player joins a minigame on Hypixel 24 | */ 25 | public class JoinMinigameEvent { 26 | 27 | private final Minigame minigame; 28 | 29 | public JoinMinigameEvent(Minigame minigame) { 30 | this.minigame = minigame; 31 | } 32 | 33 | public Minigame getMinigame() { 34 | return minigame; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/render/RenderEntitiesEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.render; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Called when entities are about to be rendered in the world 24 | */ 25 | public final class RenderEntitiesEvent extends Event { 26 | 27 | private final float partialTicks; 28 | 29 | public RenderEntitiesEvent(float partialTicks) { 30 | this.partialTicks = partialTicks; 31 | } 32 | 33 | public final float getPartialTicks() { 34 | return partialTicks; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/render/RenderEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.render; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked every frame; used to render in the 3D space 24 | */ 25 | public class RenderEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/render/RenderGuiEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.render; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked every frame; used to render in the ingame GUI 24 | */ 25 | public class RenderGuiEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/render/RenderTickEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.render; 19 | 20 | public final class RenderTickEvent { 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/world/EntityJoinWorldEvent.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.event.world; 2 | 3 | import cc.hyperium.event.CancellableEvent; 4 | import net.minecraft.entity.Entity; 5 | import net.minecraft.world.World; 6 | 7 | public class EntityJoinWorldEvent extends CancellableEvent { 8 | 9 | private final World world; 10 | private final Entity entity; 11 | 12 | public EntityJoinWorldEvent(World world, Entity entity) { 13 | this.world = world; 14 | this.entity = entity; 15 | } 16 | 17 | public World getWorld() { 18 | return world; 19 | } 20 | 21 | public Entity getEntity() { 22 | return entity; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/world/SpawnpointChangeEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.world; 19 | 20 | import cc.hyperium.event.Event; 21 | import net.minecraft.util.BlockPos; 22 | 23 | /** 24 | * Invoked when the spawnpoint has changed 25 | * This is useful for detecting minigames 26 | */ 27 | public class SpawnpointChangeEvent extends Event { 28 | 29 | private final BlockPos blockPos; 30 | 31 | public SpawnpointChangeEvent(BlockPos blockPos) { 32 | this.blockPos = blockPos; 33 | } 34 | 35 | public BlockPos getBlockPos() { 36 | return blockPos; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/world/WorldChangeEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.world; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | /** 23 | * Invoked when the world is changed 24 | */ 25 | public class WorldChangeEvent extends Event { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/world/WorldLoadEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.world; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | public class WorldLoadEvent extends Event { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/event/world/WorldUnloadEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.event.world; 19 | 20 | import cc.hyperium.event.Event; 21 | 22 | public class WorldUnloadEvent extends Event { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/gui/tips/TipRegistry.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.gui.tips; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Arrays; 5 | import java.util.List; 6 | 7 | public class TipRegistry { 8 | 9 | public static final TipRegistry INSTANCE = new TipRegistry(); 10 | private List hyperiumTipArray = new ArrayList<>(); 11 | 12 | public void registerTip(String tip) { 13 | hyperiumTipArray.add(tip); 14 | } 15 | 16 | public void registerTips(String... tips) { 17 | hyperiumTipArray.addAll(Arrays.asList(tips)); 18 | } 19 | 20 | public List getTips() { 21 | return hyperiumTipArray; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/handlers/handlers/OtherConfigOptions.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.handlers.handlers; 19 | 20 | /** 21 | * @author Sk1er 22 | */ 23 | public class OtherConfigOptions { 24 | 25 | public int renderNameDistance = 64; 26 | public boolean isCancelBox; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/handlers/handlers/keybinds/keybinds/GuiDanceKeybind.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.handlers.handlers.keybinds.keybinds; 19 | 20 | import cc.hyperium.gui.GuiDances; 21 | import cc.hyperium.handlers.handlers.keybinds.HyperiumBind; 22 | import org.lwjgl.input.Keyboard; 23 | 24 | public class GuiDanceKeybind extends HyperiumBind { 25 | 26 | public GuiDanceKeybind() { 27 | super("Use Dances", Keyboard.KEY_O); 28 | } 29 | 30 | @Override 31 | public void onPress() { 32 | new GuiDances().show(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/handlers/handlers/keybinds/keybinds/GuiKeybind.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.handlers.handlers.keybinds.keybinds; 19 | 20 | import cc.hyperium.gui.hyperium.HyperiumMainGui; 21 | import cc.hyperium.handlers.handlers.keybinds.HyperiumBind; 22 | import org.lwjgl.input.Keyboard; 23 | 24 | public class GuiKeybind extends HyperiumBind { 25 | public GuiKeybind() { 26 | super("Hyperium GUI", Keyboard.KEY_GRAVE); 27 | } 28 | 29 | @Override 30 | public void onPress() { 31 | HyperiumMainGui.INSTANCE.show(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/handlers/handlers/keybinds/keybinds/HideLeatherKeybind.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.handlers.handlers.keybinds.keybinds; 2 | 3 | import cc.hyperium.Hyperium; 4 | import cc.hyperium.config.Settings; 5 | import cc.hyperium.handlers.handlers.keybinds.HyperiumBind; 6 | import cc.hyperium.utils.ChatColor; 7 | import org.lwjgl.input.Keyboard; 8 | 9 | public class HideLeatherKeybind extends HyperiumBind { 10 | 11 | public HideLeatherKeybind() { 12 | super("Toggle Leather Armor", Keyboard.KEY_NONE); 13 | } 14 | 15 | @Override 16 | public void onPress() { 17 | Hyperium.INSTANCE.getHandlers().getGeneralChatHandler().sendMessage(Settings.HIDE_LEATHER_ARMOR ? 18 | "Leather armor is now" + ChatColor.GREEN + " shown" + ChatColor.GRAY + "." : 19 | "Leather armor is now" + ChatColor.RED + " hidden" + ChatColor.GRAY + "."); 20 | Settings.HIDE_LEATHER_ARMOR = !Settings.HIDE_LEATHER_ARMOR; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/handlers/handlers/keybinds/keybinds/UploadScreenshotKeybind.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.handlers.handlers.keybinds.keybinds; 19 | 20 | import cc.hyperium.handlers.handlers.keybinds.HyperiumBind; 21 | import org.lwjgl.input.Keyboard; 22 | 23 | public class UploadScreenshotKeybind extends HyperiumBind { 24 | 25 | public UploadScreenshotKeybind() { 26 | super("Upload Screenshot", Keyboard.KEY_LSHIFT); 27 | conflictExempt = true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/handlers/handlers/particle/AbstractAnimation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.handlers.handlers.particle; 19 | 20 | import net.minecraft.entity.player.EntityPlayer; 21 | import net.minecraft.util.Vec3; 22 | 23 | import java.util.List; 24 | 25 | /** 26 | * Created by mitchellkatz on 6/23/18. Designed for production use on Sk1er.club 27 | */ 28 | public abstract class AbstractAnimation { 29 | 30 | public abstract List render(EntityPlayer player, double x, double y, double z); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/handlers/handlers/particle/IParticle.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.handlers.handlers.particle; 19 | 20 | import net.minecraft.client.particle.EntityFX; 21 | import net.minecraft.world.World; 22 | 23 | /** 24 | * Created by mitchellkatz on 6/25/18. Designed for production use on Sk1er.club 25 | */ 26 | public interface IParticle { 27 | 28 | EntityFX spawn(World world, double x, double y, double z); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/handlers/handlers/stats/display/StatsDisplayItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.handlers.handlers.stats.display; 19 | 20 | public abstract class StatsDisplayItem { 21 | 22 | public int width; 23 | public int height; 24 | 25 | public abstract void draw(int x, int y); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/entity/IMixinAbstractClientPlayer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.entity; 19 | 20 | import net.minecraft.client.entity.AbstractClientPlayer; 21 | import net.minecraft.client.network.NetworkPlayerInfo; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.gen.Invoker; 24 | 25 | @Mixin(AbstractClientPlayer.class) 26 | public interface IMixinAbstractClientPlayer { 27 | 28 | @Invoker NetworkPlayerInfo callGetPlayerInfo(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/gui/IMixinGui.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.gui; 19 | 20 | import net.minecraft.client.gui.Gui; 21 | import org.spongepowered.asm.mixin.Mixin; 22 | import org.spongepowered.asm.mixin.gen.Accessor; 23 | 24 | @Mixin(Gui.class) 25 | public interface IMixinGui { 26 | 27 | @Accessor void setZLevel(float zLevel); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/gui/IMixinGuiChat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.gui; 19 | 20 | import net.minecraft.client.gui.GuiChat; 21 | import net.minecraft.client.gui.GuiTextField; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.gen.Accessor; 24 | 25 | @Mixin(GuiChat.class) 26 | public interface IMixinGuiChat { 27 | 28 | @Accessor GuiTextField getInputField(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/gui/IMixinGuiNewChat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.gui; 19 | 20 | import net.minecraft.client.gui.ChatLine; 21 | import net.minecraft.client.gui.GuiNewChat; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.gen.Accessor; 24 | 25 | import java.util.List; 26 | 27 | @Mixin(GuiNewChat.class) 28 | public interface IMixinGuiNewChat { 29 | 30 | @Accessor void setIsScrolled(boolean isScrolled); 31 | @Accessor List getChatLines(); 32 | @Accessor List getDrawnChatLines(); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/gui/IMixinGuiScreen.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.gui; 19 | 20 | import net.minecraft.client.gui.GuiButton; 21 | import net.minecraft.client.gui.GuiScreen; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.gen.Accessor; 24 | 25 | import java.util.List; 26 | 27 | @Mixin(GuiScreen.class) 28 | public interface IMixinGuiScreen { 29 | 30 | @Accessor List getButtonList(); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/gui/IMixinGuiScreenBook.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.gui; 19 | 20 | import net.minecraft.client.gui.GuiScreenBook; 21 | import net.minecraft.nbt.NBTTagList; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.gen.Accessor; 24 | 25 | @Mixin(GuiScreenBook.class) 26 | public interface IMixinGuiScreenBook { 27 | @Accessor NBTTagList getBookPages(); 28 | @Accessor int getCurrPage(); 29 | @Accessor void setBookPages(NBTTagList tagList); 30 | @Accessor void setCurrPage(int page); 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/gui/achievement/MixinGuiAchievement.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mixins.client.gui.achievement; 2 | 3 | import cc.hyperium.config.Settings; 4 | import net.minecraft.client.gui.achievement.GuiAchievement; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(GuiAchievement.class) 11 | public class MixinGuiAchievement { 12 | 13 | @Inject(method = "updateAchievementWindow", at = @At("HEAD"), cancellable = true) 14 | private void cancelAchievementRender(CallbackInfo ci) { 15 | if (Settings.DISABLE_ACHIEVEMENTS) ci.cancel(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/gui/inventory/IMixinGuiContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.gui.inventory; 19 | 20 | import net.minecraft.client.gui.inventory.GuiContainer; 21 | import org.spongepowered.asm.mixin.Mixin; 22 | import org.spongepowered.asm.mixin.gen.Accessor; 23 | 24 | @Mixin(GuiContainer.class) 25 | public interface IMixinGuiContainer { 26 | 27 | @Accessor void setGuiLeft(int guiLeft); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/model/MixinModelRenderer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.model; 19 | 20 | import cc.hyperium.mixinsimp.client.model.IMixinModelRenderer; 21 | import net.minecraft.client.model.ModelRenderer; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.Shadow; 24 | 25 | @Mixin(ModelRenderer.class) 26 | public class MixinModelRenderer implements IMixinModelRenderer { 27 | 28 | @Shadow private boolean compiled; 29 | 30 | public void reset() { 31 | compiled = false; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/particle/IMixinEntityFX.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.particle; 19 | 20 | import net.minecraft.client.particle.EntityFX; 21 | import org.spongepowered.asm.mixin.Mixin; 22 | import org.spongepowered.asm.mixin.gen.Accessor; 23 | 24 | @Mixin(EntityFX.class) 25 | public interface IMixinEntityFX { 26 | 27 | @Accessor void setParticleGravity(float particleGravity); 28 | @Accessor void setParticleMaxAge(int particleMaxAge); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/renderer/IMixinEntityRenderer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.renderer; 19 | 20 | import net.minecraft.client.renderer.EntityRenderer; 21 | import net.minecraft.util.ResourceLocation; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.gen.Accessor; 24 | import org.spongepowered.asm.mixin.gen.Invoker; 25 | 26 | @Mixin(EntityRenderer.class) 27 | public interface IMixinEntityRenderer { 28 | 29 | @Accessor void setCloudFog(boolean cloudFog); 30 | @Invoker void callLoadShader(ResourceLocation resourceLocation); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/renderer/IMixinInventoryEffectRenderer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.renderer; 19 | 20 | import net.minecraft.client.renderer.InventoryEffectRenderer; 21 | import org.spongepowered.asm.mixin.Mixin; 22 | import org.spongepowered.asm.mixin.gen.Accessor; 23 | 24 | @Mixin(InventoryEffectRenderer.class) 25 | public interface IMixinInventoryEffectRenderer { 26 | @Accessor void setHasActivePotionEffects(boolean hasActivePotionEffects); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/renderer/IMixinThreadDownloadImageData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.renderer; 19 | 20 | import net.minecraft.client.renderer.IImageBuffer; 21 | import net.minecraft.client.renderer.ThreadDownloadImageData; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.gen.Accessor; 24 | 25 | @Mixin(ThreadDownloadImageData.class) 26 | public interface IMixinThreadDownloadImageData { 27 | 28 | @Accessor IImageBuffer getImageBuffer(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/renderer/tileentity/MixinTileEntityEndPortalRenderer.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mixins.client.renderer.tileentity; 2 | 3 | import cc.hyperium.config.Settings; 4 | import net.minecraft.client.renderer.tileentity.TileEntityEndPortalRenderer; 5 | import net.minecraft.tileentity.TileEntityEndPortal; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @Mixin(TileEntityEndPortalRenderer.class) 12 | public class MixinTileEntityEndPortalRenderer { 13 | 14 | @Inject(method = "renderTileEntityAt", at = @At("HEAD"), cancellable = true) 15 | private void preRender(TileEntityEndPortal te, double x, double y, double z, float partialTicks, int destroyStage, CallbackInfo ci) { 16 | if (Settings.DISABLE_END_PORTALS) { 17 | ci.cancel(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/resources/IMixinAbstractResourcePack.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.resources; 19 | 20 | import java.io.IOException; 21 | import java.io.InputStream; 22 | 23 | import net.minecraft.client.resources.AbstractResourcePack; 24 | import org.spongepowered.asm.mixin.Mixin; 25 | import org.spongepowered.asm.mixin.gen.Invoker; 26 | 27 | @Mixin(AbstractResourcePack.class) 28 | public interface IMixinAbstractResourcePack { 29 | 30 | @Invoker InputStream callGetInputStreamByName(String name) throws IOException; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/resources/IMixinResourcePackListEntry.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mixins.client.resources; 2 | 3 | import net.minecraft.client.resources.ResourcePackListEntry; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Invoker; 6 | 7 | @Mixin(ResourcePackListEntry.class) 8 | public interface IMixinResourcePackListEntry { 9 | @Invoker String callFunc_148312_b(); // getResourcePackName 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/client/settings/IMixinKeyBinding.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.client.settings; 19 | 20 | import net.minecraft.client.settings.KeyBinding; 21 | import org.spongepowered.asm.mixin.Mixin; 22 | import org.spongepowered.asm.mixin.gen.Accessor; 23 | 24 | @Mixin(KeyBinding.class) 25 | public interface IMixinKeyBinding { 26 | @Accessor void setPressed(boolean pressed); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/entity/IMixinEntity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.entity; 19 | 20 | import net.minecraft.entity.Entity; 21 | import net.minecraft.event.HoverEvent; 22 | import org.spongepowered.asm.mixin.Mixin; 23 | import org.spongepowered.asm.mixin.gen.Invoker; 24 | 25 | @Mixin(Entity.class) 26 | public interface IMixinEntity { 27 | 28 | @Invoker HoverEvent callGetHoverEvent(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/nbt/MixinNBTTagCompound.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mixins.nbt; 2 | 3 | import net.minecraft.nbt.NBTBase; 4 | import net.minecraft.nbt.NBTTagCompound; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(NBTTagCompound.class) 11 | public class MixinNBTTagCompound { 12 | 13 | @Inject(method = "setTag", at = @At("HEAD")) 14 | private void failSoft(String key, NBTBase value, CallbackInfo ci) { 15 | if (value == null) throw new IllegalArgumentException("Invalid null NBT value with key " + key); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/network/play/client/MixinC01PacketChatMessage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.network.play.client; 19 | 20 | import net.minecraft.network.play.client.C01PacketChatMessage; 21 | import org.spongepowered.asm.mixin.Mixin; 22 | import org.spongepowered.asm.mixin.gen.Accessor; 23 | 24 | @Mixin(C01PacketChatMessage.class) 25 | public interface MixinC01PacketChatMessage { 26 | 27 | @Accessor void setMessage(String message); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/server/MixinMinecraftServer.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mixins.server; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import net.minecraft.network.ServerStatusResponse; 5 | import net.minecraft.server.MinecraftServer; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | import org.spongepowered.asm.mixin.injection.callback.LocalCapture; 11 | 12 | import java.awt.image.BufferedImage; 13 | import java.io.File; 14 | 15 | @Mixin(MinecraftServer.class) 16 | public class MixinMinecraftServer { 17 | 18 | @Inject(method = "addFaviconToStatusResponse", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/ServerStatusResponse;setFavicon(Ljava/lang/String;)V", 19 | shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD) 20 | private void releaseByteBuffer(ServerStatusResponse response, CallbackInfo ci, File serverIcon, ByteBuf buffer, BufferedImage image, ByteBuf bytebuf1) { 21 | bytebuf1.release(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/util/MixinMouseHelper.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mixins.util; 2 | 3 | import cc.hyperium.Hyperium; 4 | import net.minecraft.util.MouseHelper; 5 | import org.lwjgl.input.Mouse; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @Mixin(MouseHelper.class) 11 | public class MixinMouseHelper { 12 | 13 | @Redirect(method = "ungrabMouseCursor", at = @At(value = "INVOKE", remap = false, target = "Lorg/lwjgl/input/Mouse;setCursorPosition(II)V", ordinal = 0)) 14 | private void ungrabMouseCursor(int new_x, int new_y) { 15 | if (Hyperium.INSTANCE.getHandlers().getMouseListener().shouldResetMouse()) { 16 | Mouse.setCursorPosition(new_x, new_y); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixins/world/IMixinWorld.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixins.world; 19 | 20 | import net.minecraft.world.World; 21 | import org.spongepowered.asm.mixin.Mixin; 22 | import org.spongepowered.asm.mixin.gen.Accessor; 23 | 24 | @Mixin(World.class) 25 | public interface IMixinWorld { 26 | @Accessor float getRainingStrength(); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/client/HyperiumClientBrand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.client; 19 | 20 | public class HyperiumClientBrand { 21 | public static String getClientModName() { 22 | return "hyperium"; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/client/gui/IMixinGuiMultiplayer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.client.gui; 19 | 20 | import net.minecraft.client.multiplayer.ServerData; 21 | 22 | public interface IMixinGuiMultiplayer { 23 | 24 | void makeDirectConnect(); 25 | 26 | void setIp(ServerData ip); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/client/model/IMixinModelBox.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.client.model; 19 | 20 | import net.minecraft.client.model.ModelRenderer; 21 | 22 | public interface IMixinModelBox { 23 | 24 | void offsetTextureQuad(ModelRenderer renderer, int quadId, float xOffset, float yOffset); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/client/model/IMixinModelRenderer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.client.model; 19 | 20 | public interface IMixinModelRenderer { 21 | 22 | void reset(); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/client/particle/IMixinEffectRenderer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.client.particle; 19 | 20 | import net.minecraft.client.particle.IParticleFactory; 21 | 22 | import java.util.Map; 23 | 24 | /** 25 | * Created by mitchellkatz on 6/24/18. Designed for production use on Sk1er.club 26 | */ 27 | public interface IMixinEffectRenderer { 28 | Map getParticleMap(); 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/client/renderer/entity/IMixinRenderManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.client.renderer.entity; 19 | 20 | import net.minecraft.client.renderer.entity.RenderPlayer; 21 | 22 | import java.util.Map; 23 | 24 | public interface IMixinRenderManager { 25 | double getPosX(); 26 | 27 | double getPosY(); 28 | 29 | double getPosZ(); 30 | 31 | Map getSkinMap(); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/client/settings/HyperiumGameSettings.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.client.settings; 19 | 20 | import net.minecraft.client.Minecraft; 21 | import net.minecraft.client.settings.KeyBinding; 22 | 23 | public class HyperiumGameSettings { 24 | public void setOptionKeyBinding(KeyBinding binding, int value) { 25 | binding.setKeyCode(value); 26 | Minecraft.getMinecraft().gameSettings.saveOptions(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/enchantment/HyperiumEnchantment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.enchantment; 19 | 20 | import net.minecraft.util.StatCollector; 21 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 22 | 23 | public class HyperiumEnchantment { 24 | 25 | public void getTranslatedName(int level, CallbackInfoReturnable ci, String name) { 26 | String s = StatCollector.translateToLocal(name); 27 | ci.setReturnValue(s + " " + level); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/entity/player/IMixinEntityPlayer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mixinsimp.entity.player; 19 | 20 | public interface IMixinEntityPlayer { 21 | void setDisplayName(String name); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mixinsimp/util/HyperiumChatComponentStyle.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mixinsimp.util; 2 | 3 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 4 | 5 | public class HyperiumChatComponentStyle { 6 | 7 | private String cache; 8 | 9 | public void invalidateCache() { 10 | cache = null; 11 | } 12 | 13 | public void getFormattedTextHeader(CallbackInfoReturnable string) { 14 | if (cache != null) string.setReturnValue(cache); 15 | } 16 | 17 | public void getFormattedTextReturn(CallbackInfoReturnable string) { 18 | cache = string.getReturnValue(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/chromahud/NumberUtil.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.chromahud; 19 | 20 | /** 21 | * Created by Mitchell Katz on 5/25/2017. 22 | */ 23 | public class NumberUtil { 24 | public static double round(double in, double places) { 25 | if (places == 0) return Math.round(in); 26 | return Math.round(in * 10.0 * places) / (10 * places); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/chromahud/api/ChromaHUDParser.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.chromahud.api; 19 | 20 | 21 | import cc.hyperium.utils.JsonHolder; 22 | 23 | import java.util.Map; 24 | 25 | /** 26 | * @author Sk1er 27 | */ 28 | public interface ChromaHUDParser { 29 | 30 | DisplayItem parse(String type, int ord, JsonHolder item); 31 | 32 | Map getNames(); 33 | 34 | ChromaHUDDescription description(); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/chromahud/api/Dimension.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.chromahud.api; 19 | 20 | /** 21 | * @author Sk1er 22 | */ 23 | public class Dimension { 24 | 25 | protected double width; 26 | protected double height; 27 | 28 | public double getWidth() { 29 | return width; 30 | } 31 | 32 | public void setWidth(double width) { 33 | this.width = width; 34 | } 35 | 36 | public double getHeight() { 37 | return height; 38 | } 39 | 40 | public void setHeight(double height) { 41 | this.height = height; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/entityradius/EntityRadius.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mods.entityradius; 2 | 3 | import cc.hyperium.addons.AbstractAddon; 4 | import cc.hyperium.config.Settings; 5 | import cc.hyperium.event.EventBus; 6 | import cc.hyperium.event.InvokeEvent; 7 | import cc.hyperium.event.render.EntityRenderEvent; 8 | import net.minecraft.client.Minecraft; 9 | 10 | public class EntityRadius extends AbstractAddon { 11 | 12 | @Override 13 | public AbstractAddon init() { 14 | EventBus.INSTANCE.register(this); 15 | return this; 16 | } 17 | 18 | @InvokeEvent 19 | public void renderEntity(EntityRenderEvent event) { 20 | if (Settings.ENABLE_ENTITY_RADIUS) { 21 | if (event.getEntityIn().getDistanceToEntity(Minecraft.getMinecraft().thePlayer) >= Settings.ENTITY_RADIUS) { 22 | event.setCancelled(true); 23 | } 24 | } 25 | } 26 | 27 | @Override 28 | public Metadata getAddonMetadata() { 29 | return new Metadata(this, "Entity Radius", "1.0", "asbyth"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/itemphysic/EventHandlerLite.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.itemphysic; 19 | 20 | import cc.hyperium.event.InvokeEvent; 21 | import cc.hyperium.event.render.RenderEvent; 22 | import cc.hyperium.mods.itemphysic.physics.ClientPhysic; 23 | 24 | public class EventHandlerLite { 25 | 26 | @InvokeEvent 27 | public void onTick(RenderEvent e) { 28 | ClientPhysic.tick = System.nanoTime(); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/itemphysic/ItemDummyContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.itemphysic; 19 | 20 | import cc.hyperium.config.ConfigOpt; 21 | import org.apache.logging.log4j.LogManager; 22 | import org.apache.logging.log4j.Logger; 23 | 24 | public class ItemDummyContainer { 25 | 26 | public static final Logger logger = LogManager.getLogger("ItemPhysics"); 27 | 28 | @ConfigOpt 29 | public static float rotateSpeed = 1.0F; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/keystrokes/screen/IScreen.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mods.keystrokes.screen; 2 | 3 | public interface IScreen { 4 | default int calculateHeight(int row) { 5 | return 55 + row * 23; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/keystrokes/screen/IScrollable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.keystrokes.screen; 19 | 20 | /** 21 | * Better way to control scrolling (Using Anonymous classes) 22 | */ 23 | public interface IScrollable { 24 | 25 | double getAmount(); 26 | 27 | void onScroll(double doubleAmount, int intAmount); 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/keystrokes/screen/impl/GuiSliderOpacity.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.mods.keystrokes.screen.impl; 2 | 3 | import cc.hyperium.mods.keystrokes.KeystrokesMod; 4 | import cc.hyperium.mods.keystrokes.config.KeystrokesSettings; 5 | import cc.hyperium.mods.keystrokes.screen.GuiScreenKeystrokes; 6 | import net.minecraftforge.fml.client.config.GuiSlider; 7 | 8 | public class GuiSliderOpacity extends GuiSlider { 9 | 10 | private final KeystrokesSettings settings; 11 | private final GuiScreenKeystrokes keystrokesGui; 12 | 13 | public GuiSliderOpacity(KeystrokesMod mod, int id, int xPos, int yPos, int width, int height, GuiScreenKeystrokes keystrokes) { 14 | super(id, xPos, yPos, width, height, "Key Opacity: ", "", 0, 15 | 255, mod.getSettings().getKeyBackgroundOpacity(), false, true); 16 | 17 | settings = mod.getSettings(); 18 | keystrokesGui = keystrokes; 19 | } 20 | 21 | @Override 22 | public void updateSlider() { 23 | super.updateSlider(); 24 | settings.setKeyBackgroundOpacity(getValueInt()); 25 | keystrokesGui.setUpdated(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/levelhead/display/DisplayPosition.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.levelhead.display; 19 | 20 | public enum DisplayPosition { 21 | 22 | ABOVE_HEAD, 23 | TAB, 24 | CHAT 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/levelhead/renderer/NullLevelheadTag.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.levelhead.renderer; 19 | 20 | import java.util.UUID; 21 | 22 | public class NullLevelheadTag extends LevelheadTag { 23 | 24 | public NullLevelheadTag(UUID owner) { 25 | super(owner); 26 | } 27 | 28 | @Override 29 | public String toString() { 30 | return null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/mods/sk1ercommon/GenKeyCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.mods.sk1ercommon; 19 | 20 | import cc.hyperium.utils.JsonHolder; 21 | 22 | /** 23 | * @author Sk1er 24 | */ 25 | public interface GenKeyCallback { 26 | void call(JsonHolder object); 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/purchases/DefaultCosmetic.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.purchases; 19 | 20 | import cc.hyperium.utils.JsonHolder; 21 | 22 | public class DefaultCosmetic extends AbstractHyperiumPurchase { 23 | public DefaultCosmetic(EnumPurchaseType type, JsonHolder data) { 24 | super(type, data); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/purchases/packages/DragonHeadCosmetic.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.purchases.packages; 19 | 20 | import cc.hyperium.purchases.AbstractHyperiumPurchase; 21 | import cc.hyperium.purchases.EnumPurchaseType; 22 | import cc.hyperium.utils.JsonHolder; 23 | 24 | public class DragonHeadCosmetic extends AbstractHyperiumPurchase { 25 | 26 | public DragonHeadCosmetic(EnumPurchaseType type, JsonHolder data) { 27 | super(EnumPurchaseType.DRAGON_HEAD, data); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/purchases/packages/FlipCosmeticPackage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.purchases.packages; 19 | 20 | import cc.hyperium.purchases.AbstractHyperiumPurchase; 21 | import cc.hyperium.purchases.EnumPurchaseType; 22 | import cc.hyperium.utils.JsonHolder; 23 | 24 | public class FlipCosmeticPackage extends AbstractHyperiumPurchase { 25 | 26 | public FlipCosmeticPackage(EnumPurchaseType type, JsonHolder data) { 27 | super(type, data); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/purchases/packages/ParticleBackgroundCosmetic.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.purchases.packages; 19 | 20 | import cc.hyperium.purchases.AbstractHyperiumPurchase; 21 | import cc.hyperium.purchases.EnumPurchaseType; 22 | import cc.hyperium.utils.JsonHolder; 23 | 24 | /** 25 | * Created by mitchellkatz on 3/20/18. Designed for production use on Sk1er.club 26 | */ 27 | public class ParticleBackgroundCosmetic extends AbstractHyperiumPurchase { 28 | 29 | public ParticleBackgroundCosmetic(EnumPurchaseType type, JsonHolder data) { 30 | super(type, data); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/purchases/packages/WingCosmetic.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.purchases.packages; 19 | 20 | import cc.hyperium.purchases.AbstractHyperiumPurchase; 21 | import cc.hyperium.purchases.EnumPurchaseType; 22 | import cc.hyperium.utils.JsonHolder; 23 | 24 | public class WingCosmetic extends AbstractHyperiumPurchase { 25 | public WingCosmetic(EnumPurchaseType type, JsonHolder data) { 26 | super(type, data); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/utils/IGlStateModifier.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.utils; 19 | 20 | public interface IGlStateModifier { 21 | 22 | void reset(); 23 | void setTexture(int id); 24 | void resetColor(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/utils/MouseListener.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.utils; 2 | 3 | import cc.hyperium.event.InvokeEvent; 4 | import cc.hyperium.event.gui.GuiOpenEvent; 5 | import net.minecraft.client.gui.inventory.GuiChest; 6 | 7 | public class MouseListener { 8 | 9 | private Class lastOpenedInventory = null; 10 | private long lastClosedInv = -1; 11 | 12 | @InvokeEvent 13 | public void onGuiOpen(GuiOpenEvent event) { 14 | if (event.getGui() == null && GuiChest.class.equals(lastOpenedInventory)) { 15 | lastClosedInv = System.currentTimeMillis(); 16 | lastOpenedInventory = null; 17 | } 18 | 19 | if (event.getGui() != null) { 20 | lastOpenedInventory = event.getGui().getClass(); 21 | } 22 | } 23 | 24 | public boolean shouldResetMouse() { 25 | return System.currentTimeMillis() - lastClosedInv > 100; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/cc/hyperium/utils/mods/AddonCheckerUtil.java: -------------------------------------------------------------------------------- 1 | package cc.hyperium.utils.mods; 2 | 3 | import cc.hyperium.Hyperium; 4 | 5 | public class AddonCheckerUtil { 6 | 7 | public static boolean isUsingOptifine() { 8 | return isUsingAddon("optifine.OptiFineTweaker"); 9 | } 10 | 11 | public static boolean isUsingQuickplay() { 12 | return isUsingAddon("co.bugg.quickplay.Quickplay"); 13 | } 14 | 15 | // non-approved addons 16 | 17 | // access any named addon for addon developers 18 | // mainAddonClass must be the path to the "mainClass" variable in the addon 19 | // ex: cc.hyperium.Hyperium 20 | public static boolean isUsingAddon(String mainAddonClass) { 21 | try { 22 | Class.forName(mainAddonClass); 23 | Hyperium.LOGGER.info("Found " + mainAddonClass); 24 | return true; 25 | } catch (Exception ignored) { 26 | return false; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/club/sk1er/website/api/requests/HypixelApiFriends.java: -------------------------------------------------------------------------------- 1 | package club.sk1er.website.api.requests; 2 | 3 | import cc.hyperium.utils.JsonHolder; 4 | import com.google.gson.JsonArray; 5 | import com.google.gson.JsonElement; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | /** 11 | * Created by mitchellkatz on 6/4/17. 12 | */ 13 | public class HypixelApiFriends implements HypixelApiObject { 14 | 15 | private JsonHolder master; 16 | 17 | public HypixelApiFriends(JsonHolder o) { 18 | if (o != null) 19 | master = o; 20 | else 21 | master = new JsonHolder(); 22 | } 23 | 24 | @Override 25 | public String toString() { 26 | return master.toString(); 27 | } 28 | 29 | @Override 30 | public JsonHolder getData() { 31 | return master; 32 | } 33 | 34 | public boolean isValid() { 35 | return master != null && !master.isNull("records"); 36 | } 37 | 38 | public JsonArray getFriends() { 39 | return master.optJSONArray("records"); 40 | } 41 | 42 | public List getFriendsAsList() { 43 | List friends = new ArrayList<>(); 44 | for (JsonElement tmp1 : getFriends()) friends.add(new JsonHolder(tmp1.getAsJsonObject())); 45 | return friends; 46 | } 47 | 48 | public int getCount() { 49 | return getFriends().size(); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/club/sk1er/website/api/requests/HypixelApiObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package club.sk1er.website.api.requests; 19 | 20 | 21 | import cc.hyperium.utils.JsonHolder; 22 | 23 | /** 24 | * @author Sk1er 25 | */ 26 | public interface HypixelApiObject { 27 | 28 | boolean isValid(); 29 | 30 | JsonHolder getData(); 31 | 32 | default boolean isLoaded() { 33 | return getData().optBoolean("loaded"); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/GetBuilder.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api; 2 | 3 | import me.semx11.autotip.api.request.Request; 4 | import org.apache.http.client.methods.HttpUriRequest; 5 | import org.apache.http.client.methods.RequestBuilder; 6 | 7 | public class GetBuilder { 8 | 9 | private static final String BASE_URL = "https://api.autotip.pro/"; 10 | 11 | private final RequestBuilder builder; 12 | 13 | private GetBuilder(Request request) { 14 | builder = RequestBuilder.get().setUri(BASE_URL + request.getType().getEndpoint()); 15 | } 16 | 17 | public static GetBuilder of(Request request) { 18 | return new GetBuilder(request); 19 | } 20 | 21 | public GetBuilder addParameter(String key, Object value) { 22 | builder.addParameter(key, String.valueOf(value)); 23 | return this; 24 | } 25 | 26 | public HttpUriRequest build() { 27 | return builder.build(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/RequestType.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api; 2 | 3 | import me.semx11.autotip.api.reply.impl.KeepAliveReply; 4 | import me.semx11.autotip.api.reply.impl.LocaleReply; 5 | import me.semx11.autotip.api.reply.impl.LoginReply; 6 | import me.semx11.autotip.api.reply.impl.LogoutReply; 7 | import me.semx11.autotip.api.reply.impl.SettingsReply; 8 | import me.semx11.autotip.api.reply.impl.TipReply; 9 | 10 | public enum RequestType { 11 | SETTINGS("settings", SettingsReply.class), 12 | LOCALE("locale", LocaleReply.class), 13 | LOGIN("login", LoginReply.class), 14 | KEEP_ALIVE("keepalive", KeepAliveReply.class), 15 | TIP("tip", TipReply.class), 16 | LOGOUT("logout", LogoutReply.class); 17 | 18 | private final String endpoint; 19 | private final Class replyClass; 20 | 21 | RequestType(String endpoint, Class replyClass) { 22 | this.endpoint = endpoint; 23 | this.replyClass = replyClass; 24 | } 25 | 26 | public String getEndpoint() { 27 | return endpoint; 28 | } 29 | 30 | public Class getReplyClass() { 31 | return replyClass; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/SessionKey.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api; 2 | 3 | public class SessionKey { 4 | 5 | private final String key; 6 | 7 | public SessionKey(String key) { 8 | this.key = key; 9 | } 10 | 11 | public String getKey() { 12 | return key; 13 | } 14 | 15 | @Override 16 | public String toString() { 17 | return key; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/reply/Reply.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api.reply; 2 | 3 | import me.semx11.autotip.api.RequestType; 4 | 5 | public abstract class Reply { 6 | 7 | private boolean success; 8 | private String cause; 9 | 10 | public Reply() { 11 | } 12 | 13 | public Reply(boolean success) { 14 | this.success = success; 15 | } 16 | 17 | public boolean isSuccess() { 18 | return success; 19 | } 20 | 21 | public String getCause() { 22 | return cause; 23 | } 24 | 25 | public abstract RequestType getRequestType(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/reply/impl/KeepAliveReply.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api.reply.impl; 2 | 3 | import me.semx11.autotip.api.RequestType; 4 | import me.semx11.autotip.api.reply.Reply; 5 | 6 | public class KeepAliveReply extends Reply { 7 | 8 | public KeepAliveReply() { 9 | } 10 | 11 | public KeepAliveReply(boolean success) { 12 | super(success); 13 | } 14 | 15 | @Override 16 | public RequestType getRequestType() { 17 | return RequestType.KEEP_ALIVE; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/reply/impl/LocaleReply.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api.reply.impl; 2 | 3 | import com.google.gson.JsonObject; 4 | import java.util.Locale; 5 | import me.semx11.autotip.api.RequestType; 6 | import me.semx11.autotip.api.reply.Reply; 7 | import me.semx11.autotip.chat.LocaleHolder; 8 | 9 | public class LocaleReply extends Reply { 10 | 11 | private Locale lang; 12 | private JsonObject locale; 13 | 14 | public LocaleReply() { 15 | } 16 | 17 | public LocaleReply(boolean success) { 18 | super(success); 19 | } 20 | 21 | public LocaleHolder getLocaleHolder() { 22 | return new LocaleHolder(lang, locale); 23 | } 24 | 25 | @Override 26 | public RequestType getRequestType() { 27 | return RequestType.LOCALE; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/reply/impl/LoginReply.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api.reply.impl; 2 | 3 | import me.semx11.autotip.api.RequestType; 4 | import me.semx11.autotip.api.SessionKey; 5 | import me.semx11.autotip.api.reply.Reply; 6 | 7 | public class LoginReply extends Reply { 8 | 9 | private SessionKey sessionKey; 10 | private long keepAliveRate; 11 | private long tipWaveRate; 12 | private long tipCycleRate; 13 | 14 | public LoginReply() { 15 | } 16 | 17 | public LoginReply(boolean success) { 18 | super(success); 19 | } 20 | 21 | public SessionKey getSessionKey() { 22 | return sessionKey; 23 | } 24 | 25 | public long getKeepAliveRate() { 26 | return keepAliveRate; 27 | } 28 | 29 | public long getTipWaveRate() { 30 | return tipWaveRate; 31 | } 32 | 33 | public long getTipCycleRate() { 34 | return tipCycleRate; 35 | } 36 | 37 | @Override 38 | public RequestType getRequestType() { 39 | return RequestType.LOGIN; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/reply/impl/LogoutReply.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api.reply.impl; 2 | 3 | import me.semx11.autotip.api.RequestType; 4 | import me.semx11.autotip.api.reply.Reply; 5 | 6 | public class LogoutReply extends Reply { 7 | 8 | public LogoutReply() { 9 | } 10 | 11 | public LogoutReply(boolean success) { 12 | super(success); 13 | } 14 | 15 | @Override 16 | public RequestType getRequestType() { 17 | return RequestType.LOGOUT; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/reply/impl/SettingsReply.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api.reply.impl; 2 | 3 | import me.semx11.autotip.api.RequestType; 4 | import me.semx11.autotip.api.reply.Reply; 5 | import me.semx11.autotip.config.GlobalSettings; 6 | 7 | public class SettingsReply extends Reply { 8 | 9 | private GlobalSettings settings; 10 | 11 | public SettingsReply() { 12 | } 13 | 14 | public SettingsReply(boolean success) { 15 | super(success); 16 | } 17 | 18 | public GlobalSettings getSettings() { 19 | return settings; 20 | } 21 | 22 | @Override 23 | public RequestType getRequestType() { 24 | return RequestType.SETTINGS; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/request/Request.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api.request; 2 | 3 | import me.semx11.autotip.api.RequestType; 4 | import me.semx11.autotip.api.reply.Reply; 5 | 6 | public interface Request { 7 | 8 | T execute(); 9 | 10 | RequestType getType(); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/api/request/impl/TipRequest.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.api.request.impl; 2 | 3 | import java.util.Optional; 4 | import me.semx11.autotip.api.GetBuilder; 5 | import me.semx11.autotip.api.RequestHandler; 6 | import me.semx11.autotip.api.RequestType; 7 | import me.semx11.autotip.api.SessionKey; 8 | import me.semx11.autotip.api.reply.Reply; 9 | import me.semx11.autotip.api.reply.impl.TipReply; 10 | import me.semx11.autotip.api.request.Request; 11 | import org.apache.http.client.methods.HttpUriRequest; 12 | 13 | public class TipRequest implements Request { 14 | 15 | private final SessionKey sessionKey; 16 | 17 | private TipRequest(SessionKey sessionKey) { 18 | this.sessionKey = sessionKey; 19 | } 20 | 21 | public static TipRequest of(SessionKey sessionKey) { 22 | return new TipRequest(sessionKey); 23 | } 24 | 25 | @Override 26 | public TipReply execute() { 27 | HttpUriRequest request = GetBuilder.of(this) 28 | .addParameter("key", sessionKey) 29 | .build(); 30 | 31 | Optional optional = RequestHandler.getReply(this, request.getURI()); 32 | return optional 33 | .map(reply -> (TipReply) reply) 34 | .orElseGet(TipReply::getDefault); 35 | } 36 | 37 | @Override 38 | public RequestType getType() { 39 | return RequestType.TIP; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/chat/ChatComponentBuilder.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.chat; 2 | 3 | import me.semx11.autotip.universal.UniversalUtil; 4 | import me.semx11.autotip.util.StringUtil; 5 | 6 | public class ChatComponentBuilder { 7 | 8 | private static final String PREFIX = "&6A&eT &8> &7"; 9 | 10 | private String text; 11 | private String hoverText; 12 | private String url; 13 | 14 | private ChatComponentBuilder(boolean prefix, String text, Object... params) { 15 | this.text = StringUtil.params((prefix ? PREFIX : "") + text, params); 16 | } 17 | 18 | public static ChatComponentBuilder of(String text, Object... params) { 19 | return new ChatComponentBuilder(true, text, params); 20 | } 21 | 22 | public static ChatComponentBuilder of(boolean prefix, String text, Object... params) { 23 | return new ChatComponentBuilder(prefix, text, params); 24 | } 25 | 26 | public ChatComponentBuilder setUrl(String url, Object... params) { 27 | this.url = StringUtil.params(url, false, params); 28 | return this; 29 | } 30 | 31 | public ChatComponentBuilder setHover(String hoverText, Object... params) { 32 | this.hoverText = StringUtil.params(hoverText, params); 33 | return this; 34 | } 35 | 36 | public void send() { 37 | UniversalUtil.addChatMessage(text, url, hoverText); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/chat/MessageOption.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.chat; 2 | 3 | import java.util.Arrays; 4 | 5 | public enum MessageOption { 6 | DEBUG("&6Debug"), 7 | SHOWN("&aShown"), 8 | COMPACT("&eCompact"), 9 | HIDDEN("&cHidden"); 10 | 11 | private final String format; 12 | 13 | MessageOption(String format) { 14 | this.format = format; 15 | } 16 | 17 | public MessageOption next() { 18 | switch (this) { 19 | case DEBUG: 20 | case HIDDEN: 21 | return SHOWN; 22 | case SHOWN: 23 | return COMPACT; 24 | case COMPACT: 25 | return HIDDEN; 26 | default: 27 | return null; 28 | } 29 | } 30 | 31 | public static MessageOption valueOfIgnoreCase(String name) { 32 | return Arrays.stream(MessageOption.values()) 33 | .filter(e -> e.name().equalsIgnoreCase(name)) 34 | .findFirst() 35 | .orElseThrow(IllegalArgumentException::new); 36 | } 37 | 38 | @Override 39 | public String toString() { 40 | return format; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/command/CommandAbstract.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.command; 2 | 3 | import cc.hyperium.commands.BaseCommand; 4 | import me.semx11.autotip.Autotip; 5 | import net.minecraft.command.ICommandSender; 6 | 7 | public abstract class CommandAbstract implements BaseCommand { 8 | 9 | public final Autotip autotip; 10 | 11 | public CommandAbstract(Autotip autotip) { 12 | this.autotip = autotip; 13 | } 14 | 15 | 16 | 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/command/impl/CommandLimbo.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.command.impl; 2 | 3 | import cc.hyperium.commands.CommandException; 4 | import me.semx11.autotip.Autotip; 5 | import me.semx11.autotip.chat.MessageUtil; 6 | import me.semx11.autotip.command.CommandAbstract; 7 | 8 | public class CommandLimbo extends CommandAbstract { 9 | 10 | private boolean executed; 11 | 12 | public CommandLimbo(Autotip autotip) { 13 | super(autotip); 14 | } 15 | 16 | public boolean hasExecuted() { 17 | return executed; 18 | } 19 | 20 | public void setExecuted(boolean executed) { 21 | this.executed = executed; 22 | } 23 | 24 | @Override 25 | public String getName() { 26 | return "limbo"; 27 | } 28 | 29 | @Override 30 | public String getUsage() { 31 | return "/limbo"; 32 | } 33 | 34 | @Override 35 | public void onExecute(String[] args) throws CommandException { 36 | MessageUtil messageUtil = autotip.getMessageUtil(); 37 | 38 | if (autotip.getSessionManager().isOnHypixel()) { 39 | executed = true; 40 | messageUtil.sendCommand("/achat \u00a7c"); 41 | } else { 42 | messageUtil.send("&cYou must be on Hypixel to use this command!"); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/event/Event.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.event; 2 | 3 | public interface Event { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/event/impl/EventClientTick.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.event.impl; 2 | 3 | import cc.hyperium.event.InvokeEvent; 4 | import cc.hyperium.event.client.TickEvent; 5 | import me.semx11.autotip.Autotip; 6 | import me.semx11.autotip.event.Event; 7 | 8 | public class EventClientTick implements Event { 9 | 10 | private final Autotip autotip; 11 | 12 | public EventClientTick(Autotip autotip) { 13 | this.autotip = autotip; 14 | } 15 | 16 | @InvokeEvent 17 | public void onClientTick(TickEvent event) { 18 | autotip.getMessageUtil().flushQueues(); 19 | if (autotip.isInitialized()) autotip.getStatsManager().saveCycle(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/adapter/TypeAdapter.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.adapter; 2 | 3 | import com.google.gson.JsonDeserializationContext; 4 | import com.google.gson.JsonDeserializer; 5 | import com.google.gson.JsonElement; 6 | import com.google.gson.JsonParseException; 7 | import com.google.gson.JsonSerializationContext; 8 | import com.google.gson.JsonSerializer; 9 | import java.lang.reflect.Type; 10 | 11 | public interface TypeAdapter extends JsonSerializer, JsonDeserializer { 12 | 13 | @Override 14 | default T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) 15 | throws JsonParseException { 16 | return deserialize(json); 17 | } 18 | 19 | @Override 20 | default JsonElement serialize(T src, Type typeOfSrc, JsonSerializationContext context) { 21 | return serialize(src); 22 | } 23 | 24 | T deserialize(JsonElement json); 25 | 26 | JsonElement serialize(T src); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/adapter/impl/LocaleAdapter.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.adapter.impl; 2 | 3 | import com.google.gson.JsonElement; 4 | import com.google.gson.JsonPrimitive; 5 | import java.util.Locale; 6 | import me.semx11.autotip.gson.adapter.TypeAdapter; 7 | 8 | public class LocaleAdapter implements TypeAdapter { 9 | 10 | @Override 11 | public Locale deserialize(JsonElement json) { 12 | return Locale.forLanguageTag(json.getAsString()); 13 | } 14 | 15 | @Override 16 | public JsonElement serialize(Locale src) { 17 | return new JsonPrimitive(src.toLanguageTag()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/adapter/impl/PatternAdapter.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.adapter.impl; 2 | 3 | import com.google.gson.JsonElement; 4 | import com.google.gson.JsonPrimitive; 5 | import java.util.regex.Pattern; 6 | import me.semx11.autotip.gson.adapter.TypeAdapter; 7 | 8 | public class PatternAdapter implements TypeAdapter { 9 | 10 | @Override 11 | public Pattern deserialize(JsonElement json) { 12 | return Pattern.compile(json.getAsString()); 13 | } 14 | 15 | @Override 16 | public JsonElement serialize(Pattern src) { 17 | return new JsonPrimitive(src.pattern()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/adapter/impl/SessionKeyAdapter.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.adapter.impl; 2 | 3 | import com.google.gson.JsonElement; 4 | import com.google.gson.JsonPrimitive; 5 | import me.semx11.autotip.api.SessionKey; 6 | import me.semx11.autotip.gson.adapter.TypeAdapter; 7 | 8 | public class SessionKeyAdapter implements TypeAdapter { 9 | 10 | @Override 11 | public SessionKey deserialize(JsonElement json) { 12 | return new SessionKey(json.getAsString()); 13 | } 14 | 15 | @Override 16 | public JsonElement serialize(SessionKey src) { 17 | return new JsonPrimitive(src.getKey()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/adapter/impl/VersionAdapter.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.adapter.impl; 2 | 3 | import com.google.gson.JsonElement; 4 | import com.google.gson.JsonPrimitive; 5 | import me.semx11.autotip.gson.adapter.TypeAdapter; 6 | import me.semx11.autotip.util.Version; 7 | 8 | public class VersionAdapter implements TypeAdapter { 9 | 10 | @Override 11 | public Version deserialize(JsonElement json) { 12 | return new Version(json.getAsString()); 13 | } 14 | 15 | @Override 16 | public JsonElement serialize(Version src) { 17 | return new JsonPrimitive(src.get()); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/creator/ConfigCreator.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.creator; 2 | 3 | import com.google.gson.InstanceCreator; 4 | import java.lang.reflect.Type; 5 | import me.semx11.autotip.Autotip; 6 | import me.semx11.autotip.config.Config; 7 | 8 | public class ConfigCreator implements InstanceCreator { 9 | 10 | private final Autotip autotip; 11 | 12 | public ConfigCreator(Autotip autotip) { 13 | this.autotip = autotip; 14 | } 15 | 16 | @Override 17 | public Config createInstance(Type type) { 18 | return new Config(autotip); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/creator/StatsDailyCreator.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.creator; 2 | 3 | import com.google.gson.InstanceCreator; 4 | import java.lang.reflect.Type; 5 | import me.semx11.autotip.Autotip; 6 | import me.semx11.autotip.stats.StatsDaily; 7 | 8 | public class StatsDailyCreator implements InstanceCreator { 9 | 10 | private final Autotip autotip; 11 | 12 | public StatsDailyCreator(Autotip autotip) { 13 | this.autotip = autotip; 14 | } 15 | 16 | @Override 17 | public StatsDaily createInstance(Type type) { 18 | return new StatsDaily(autotip); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/creator/StatsMessageCreator.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.creator; 2 | 3 | import com.google.gson.InstanceCreator; 4 | import java.lang.reflect.Type; 5 | import me.semx11.autotip.message.StatsMessage; 6 | 7 | public class StatsMessageCreator implements InstanceCreator { 8 | 9 | @Override 10 | public StatsMessage createInstance(Type type) { 11 | return new StatsMessage(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/exclusion/AnnotationExclusionStrategy.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.exclusion; 2 | 3 | import com.google.gson.ExclusionStrategy; 4 | import com.google.gson.FieldAttributes; 5 | 6 | public class AnnotationExclusionStrategy implements ExclusionStrategy { 7 | 8 | @Override 9 | public boolean shouldSkipField(FieldAttributes f) { 10 | return f.getAnnotation(Exclude.class) != null; 11 | } 12 | 13 | @Override 14 | public boolean shouldSkipClass(Class clazz) { 15 | return false; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/gson/exclusion/Exclude.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.gson.exclusion; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.FIELD) 10 | public @interface Exclude { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/message/HoverMessage.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.message; 2 | 3 | import java.util.Map; 4 | import java.util.concurrent.ConcurrentHashMap; 5 | import java.util.regex.Pattern; 6 | import me.semx11.autotip.gson.exclusion.Exclude; 7 | 8 | public class HoverMessage extends Message { 9 | 10 | @Exclude 11 | private final Map hoverMessageCache = new ConcurrentHashMap<>(); 12 | 13 | private StatsType statsType; 14 | 15 | public HoverMessage() { 16 | super(); 17 | } 18 | 19 | public HoverMessage(Pattern pattern, StatsType statsType) { 20 | super(pattern); 21 | this.statsType = statsType; 22 | } 23 | 24 | public HoverMessageMatcher getMatcherFor(String input) { 25 | if (hoverMessageCache.containsKey(input)) return hoverMessageCache.get(input); 26 | HoverMessageMatcher matcher = new HoverMessageMatcher(pattern, input, statsType); 27 | hoverMessageCache.put(input, matcher); 28 | return matcher; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/message/HoverMessageMatcher.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.message; 2 | 3 | import java.util.regex.Pattern; 4 | import me.semx11.autotip.stats.StatsDaily; 5 | 6 | public class HoverMessageMatcher extends MessageMatcher { 7 | 8 | private final StatsType statsType; 9 | 10 | public HoverMessageMatcher(Pattern pattern, String input, StatsType statsType) { 11 | super(pattern, input); 12 | this.statsType = statsType; 13 | } 14 | 15 | public void applyStats(StatsDaily stats) { 16 | statsType.getConsumer().accept(stats, this); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/message/Message.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.message; 2 | 3 | import java.util.Map; 4 | import java.util.concurrent.ConcurrentHashMap; 5 | import java.util.regex.Pattern; 6 | import me.semx11.autotip.chat.MessageOption; 7 | import me.semx11.autotip.gson.exclusion.Exclude; 8 | 9 | public class Message { 10 | 11 | @Exclude 12 | private final Map messageCache = new ConcurrentHashMap<>(); 13 | 14 | protected Pattern pattern; 15 | private MessageOption hideFor; 16 | 17 | public Message() { 18 | 19 | } 20 | 21 | public Message(Pattern pattern) { 22 | this(pattern, MessageOption.HIDDEN); 23 | } 24 | 25 | public Message(Pattern pattern, MessageOption hideFor) { 26 | this.pattern = pattern; 27 | this.hideFor = hideFor; 28 | } 29 | 30 | public Pattern getPattern() { 31 | return pattern; 32 | } 33 | 34 | public MessageMatcher getMatcherFor(String input) { 35 | if (messageCache.containsKey(input)) return messageCache.get(input); 36 | MessageMatcher matcher = new MessageMatcher(pattern, input); 37 | messageCache.put(input, matcher); 38 | return matcher; 39 | } 40 | 41 | public boolean shouldHide(MessageOption option) { 42 | return hideFor.compareTo(option) <= 0; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/message/MessageMatcher.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.message; 2 | 3 | import java.util.regex.Matcher; 4 | import java.util.regex.Pattern; 5 | 6 | public class MessageMatcher { 7 | 8 | private final Matcher matcher; 9 | 10 | public MessageMatcher(Pattern pattern, String input) { 11 | matcher = pattern.matcher(input); 12 | } 13 | 14 | public boolean matches() { 15 | return matcher.matches(); 16 | } 17 | 18 | public int getInt(String group) { 19 | try { 20 | return Integer.parseInt(getString(group)); 21 | } catch (NumberFormatException e) { 22 | throw new IllegalArgumentException("Group " + group + " is not of type int."); 23 | } 24 | } 25 | 26 | public String getString(String group) { 27 | return matcher.group(group); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/message/StatsMessageMatcher.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.message; 2 | 3 | import java.util.regex.Pattern; 4 | import me.semx11.autotip.stats.StatsDaily; 5 | 6 | public class StatsMessageMatcher extends MessageMatcher { 7 | 8 | private final StatsType statsType; 9 | 10 | public StatsMessageMatcher(Pattern pattern, String input, StatsType statsType) { 11 | super(pattern, input); 12 | this.statsType = statsType; 13 | } 14 | 15 | public void applyStats(StatsDaily stats) { 16 | statsType.getConsumer().accept(stats, this); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/stats/StatsRange.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.stats; 2 | 3 | import me.semx11.autotip.Autotip; 4 | 5 | import java.time.LocalDate; 6 | 7 | public class StatsRange extends Stats { 8 | 9 | private final LocalDate start; 10 | private final LocalDate end; 11 | 12 | public StatsRange(Autotip autotip, LocalDate start, LocalDate end) { 13 | super(autotip); 14 | if (start.isAfter(end)) { 15 | throw new IllegalArgumentException("Start date is after end date"); 16 | } 17 | this.start = start; 18 | this.end = end; 19 | } 20 | 21 | public LocalDate getStart() { 22 | return start; 23 | } 24 | 25 | public LocalDate getEnd() { 26 | return end; 27 | } 28 | 29 | public String getStartString() { 30 | return DATE_FORMATTER.format(start); 31 | } 32 | 33 | public String getEndString() { 34 | return DATE_FORMATTER.format(end); 35 | } 36 | 37 | 38 | @Override 39 | public StatsRange merge(final Stats that) { 40 | assert !(that instanceof StatsRange) : "Cannot merge StatsRange with StatsRange"; 41 | assert that instanceof StatsDaily : "Cannot merge with StatsRange"; 42 | LocalDate date = ((StatsDaily) that).date; 43 | assert !date.isBefore(start) && !date.isAfter(end) : "Date is not in range"; 44 | super.merge(that); 45 | return this; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/util/HashUtil.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.util; 2 | 3 | import java.math.BigInteger; 4 | import java.nio.charset.StandardCharsets; 5 | import java.security.MessageDigest; 6 | import java.security.NoSuchAlgorithmException; 7 | import java.security.SecureRandom; 8 | 9 | public class HashUtil { 10 | 11 | private static final SecureRandom RANDOM = new SecureRandom(); 12 | 13 | public static String getNextSalt() { 14 | return new BigInteger(130, RANDOM).toString(32); 15 | } 16 | 17 | public static String hash(String str) { 18 | try { 19 | byte[] digest = digest(str, "SHA-1"); 20 | return new BigInteger(digest).toString(16); 21 | } catch (NoSuchAlgorithmException e) { 22 | throw new IllegalArgumentException(e); 23 | } 24 | } 25 | 26 | private static byte[] digest(String str, String algorithm) throws NoSuchAlgorithmException { 27 | MessageDigest md = MessageDigest.getInstance(algorithm); 28 | byte[] strBytes = str.getBytes(StandardCharsets.UTF_8); 29 | return md.digest(strBytes); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/util/MinecraftVersion.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.util; 2 | 3 | import java.util.regex.Pattern; 4 | 5 | public enum MinecraftVersion { 6 | V1_8, V1_8_8, V1_8_9, V1_9, V1_9_4, V1_10, V1_10_2, V1_11, V1_11_2, V1_12, V1_12_1, V1_12_2; 7 | 8 | public static MinecraftVersion fromString(String version) throws IllegalArgumentException { 9 | Pattern p = Pattern.compile( 10 | "^(1\\.8(\\.[8-9])?|1\\.9(\\.4)?|1\\.10(\\.2)?|1\\.11(\\.2)?|1\\.12(\\.[1-2])?)$"); 11 | return p.matcher(version).matches() ? valueOf("V" + version.replaceAll("\\.", "_")) : null; 12 | } 13 | 14 | public String toString() { 15 | return name().substring(1).replaceAll("_", "."); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/util/StringUtil.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.util; 2 | 3 | import java.util.regex.Matcher; 4 | import java.util.regex.Pattern; 5 | 6 | public class StringUtil { 7 | 8 | private static final Pattern FORMAT_PATTERN = Pattern.compile("(?im)&([0-9A-FK-OR])"); 9 | private static final Pattern PARAM_PATTERN = Pattern.compile("\\{}"); 10 | 11 | public static String params(String input, Object... params) { 12 | return params(input, true, params); 13 | } 14 | 15 | public static String params(String input, boolean color, Object... params) { 16 | if (color) input = format(input); 17 | if (params == null) return input; 18 | 19 | for (Object o : params) { 20 | if (o != null) { 21 | String replacement = Matcher.quoteReplacement(format(o.toString())); 22 | input = PARAM_PATTERN.matcher(input).replaceFirst(replacement); 23 | } 24 | } 25 | 26 | return input; 27 | } 28 | 29 | public static String format(String msg) { 30 | return msg.contains("&") ? FORMAT_PATTERN.matcher(msg).replaceAll("\u00a7$1") : msg; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/me/semx11/autotip/util/Version.java: -------------------------------------------------------------------------------- 1 | package me.semx11.autotip.util; 2 | 3 | public class Version implements Comparable { 4 | 5 | private String version; 6 | 7 | public Version(String version) { 8 | assert version != null : "Version can not be null"; 9 | assert version.matches("[0-9]+(\\.[0-9]+)*") : "Invalid version format"; 10 | this.version = version; 11 | } 12 | 13 | public final String get() { 14 | return version; 15 | } 16 | 17 | @Override 18 | public int compareTo(Version that) { 19 | if (that == null) return 1; 20 | String[] thisParts = get().split("\\."); 21 | String[] thatParts = that.get().split("\\."); 22 | int length = Math.max(thisParts.length, thatParts.length); 23 | for (int i = 0; i < length; i++) { 24 | int thisPart = i < thisParts.length ? Integer.parseInt(thisParts[i]) : 0; 25 | int thatPart = i < thatParts.length ? Integer.parseInt(thatParts[i]) : 0; 26 | if (thisPart < thatPart) return -1; 27 | if (thisPart > thatPart) return 1; 28 | } 29 | 30 | return 0; 31 | } 32 | 33 | @Override 34 | public boolean equals(Object that) { 35 | return this == that || that != null && getClass() == that.getClass() && compareTo((Version) that) == 0; 36 | } 37 | 38 | @Override 39 | public String toString() { 40 | return get(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/kotlin/cc/hyperium/Metadata.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | 19 | /** 20 | * Contains String Constants of the mod 21 | */ 22 | @file:JvmName("Metadata") 23 | 24 | package cc.hyperium 25 | 26 | val MODID 27 | @JvmName("getModid") 28 | get() = "Hyperium" 29 | 30 | val VERSION 31 | @JvmName("getVersion") 32 | get() = "1.2.3" 33 | 34 | /** 35 | * @since 12 (Hyperium Build 12) 36 | */ 37 | val VERSION_ID 38 | @JvmName("getVersionID") 39 | get() = Hyperium.BUILD_ID 40 | 41 | /** 42 | * @since 15 (Hyperium Build 15) 43 | */ 44 | val DEVELOPMENT 45 | @JvmName("isDevelopment") 46 | get() = false 47 | -------------------------------------------------------------------------------- /src/main/kotlin/cc/hyperium/gui/main/components/OverlayButton.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.gui.main.components 19 | 20 | @Deprecated("Soon to be removed, please refrain from using.") 21 | class OverlayButton(label: String, val callback: Runnable) : OverlayLabel(label, true, Runnable { }) { 22 | override fun mouseClicked(mouseX: Int, mouseY: Int, overlayX: Int, overlayY: Int, w: Int, h: Int) { 23 | if (mouseX >= overlayX && mouseX <= overlayX + w && mouseY >= overlayY && mouseY <= overlayY + h) 24 | callback.run() 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/kotlin/cc/hyperium/internal/addons/annotations/Instance.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.internal.addons.annotations 19 | 20 | annotation class Instance 21 | -------------------------------------------------------------------------------- /src/main/kotlin/cc/hyperium/internal/addons/misc/AddonLoadException.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.internal.addons.misc 19 | 20 | /** 21 | * When an exception is called when loading the Addon 22 | * 23 | * @since 1.0 24 | * @author Kevin Brewster 25 | */ 26 | class AddonLoadException(msg: String) : Exception(msg) 27 | -------------------------------------------------------------------------------- /src/main/kotlin/cc/hyperium/internal/addons/translate/AbstractTranslator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.internal.addons.translate 19 | 20 | abstract class AbstractTranslator : ITranslator 21 | -------------------------------------------------------------------------------- /src/main/kotlin/cc/hyperium/internal/addons/translate/ITranslator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.internal.addons.translate 19 | 20 | import cc.hyperium.internal.addons.AddonManifest 21 | 22 | 23 | interface ITranslator { 24 | 25 | fun translate(manifest: AddonManifest) 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/kotlin/cc/hyperium/internal/addons/translate/MixinTranslator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.internal.addons.translate 19 | 20 | import cc.hyperium.internal.addons.AddonManifest 21 | import org.spongepowered.asm.mixin.Mixins 22 | 23 | class MixinTranslator : AbstractTranslator() { 24 | 25 | override fun translate(manifest: AddonManifest) { 26 | manifest.mixinConfigs?.forEach { Mixins.addConfiguration(it) } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/kotlin/cc/hyperium/internal/addons/translate/TransformerTranslator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-present Hyperium 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package cc.hyperium.internal.addons.translate 19 | 20 | import cc.hyperium.internal.addons.AddonManifest 21 | import net.minecraft.launchwrapper.Launch 22 | 23 | class TransformerTranslator : ITranslator { 24 | override fun translate(manifest: AddonManifest) { 25 | val transformerClass = manifest.transformerClass ?: return 26 | Launch.classLoader.registerTransformer(transformerClass) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/commands/Command.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.commands 2 | 3 | import cc.hyperium.commands.BaseCommand 4 | import com.chattriggers.ctjs.triggers.OnTrigger 5 | 6 | class Command(trigger: OnTrigger, private val name: String, private val usage: String) : BaseCommand { 7 | private var triggers = mutableListOf(trigger) 8 | 9 | fun getTriggers() = triggers 10 | 11 | override fun getName() = name 12 | 13 | override fun getUsage() = usage 14 | 15 | override fun onExecute(args: Array) = trigger(args) 16 | 17 | private fun trigger(args: Array) { 18 | for (trigger in triggers) 19 | trigger.trigger(*args) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/commands/CommandHandler.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.commands 2 | 3 | object CommandHandler { 4 | private var commandList = mutableListOf() 5 | @JvmStatic 6 | fun getCommandList() = commandList 7 | } 8 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/engine/module/ModuleMetadata.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.engine.module 2 | 3 | import java.util.ArrayList 4 | 5 | data class ModuleMetadata( 6 | val name: String? = null, 7 | val version: String? = null, 8 | val tags: ArrayList? = null, 9 | val pictureLink: String? = null, 10 | val creator: String? = null, 11 | val description: String? = null, 12 | val requires: ArrayList? = null, 13 | val ignored: ArrayList? = null, 14 | var fileName: String? = null, 15 | var isRequired: Boolean = false 16 | ) { 17 | val isDefault: Boolean 18 | get() = name == null 19 | } 20 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/libs/EventLib.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.libs 2 | 3 | import cc.hyperium.event.CancellableEvent 4 | import com.chattriggers.ctjs.utils.Cancellable 5 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo 6 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable 7 | 8 | object EventLib { 9 | /** 10 | * Cancel an event. Automatically used with `cancel(event)`. 11 | * 12 | * @param event the event to cancel 13 | * @throws IllegalArgumentException if event can be cancelled "normally" 14 | */ 15 | @JvmStatic 16 | @Throws(IllegalArgumentException::class) 17 | fun cancel(event: Any) { 18 | when (event) { 19 | is CallbackInfoReturnable<*> -> { 20 | if (!event.isCancellable) return 21 | event.setReturnValue(null) 22 | } 23 | is CallbackInfo -> { 24 | if (!event.isCancellable) return 25 | event.cancel() 26 | } 27 | is CancellableEvent -> 28 | event.isCancelled = true 29 | is Cancellable -> 30 | event.isCancelled = true 31 | else -> throw IllegalArgumentException() 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/objects/ParticleEffect.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.objects 2 | 3 | import com.chattriggers.ctjs.minecraft.wrappers.World 4 | import com.chattriggers.ctjs.utils.kotlin.External 5 | import com.chattriggers.ctjs.utils.kotlin.MCParticle 6 | 7 | @External 8 | class ParticleEffect constructor( 9 | x: Double, 10 | y: Double, 11 | z: Double, 12 | xSpeed: Double = 0.0, 13 | ySpeed: Double = 0.0, 14 | zSpeed: Double = 0.0 15 | ) : MCParticle(World.getWorld(), x, y, z, xSpeed, ySpeed, zSpeed) { 16 | fun scale(scale: Float) = apply { super.multipleParticleScaleBy(scale) } 17 | 18 | override fun multiplyVelocity(multiplier: Float) = apply { super.multiplyVelocity(multiplier) } 19 | 20 | fun setColor(r: Float, g: Float, b: Float, a: Float? = null) = apply { 21 | super.setRBGColorF(r, g, b) 22 | if (a != null) alpha = a 23 | } 24 | 25 | fun setColor(color: Int) = apply { 26 | setColor( 27 | (color shr 16 and 255).toFloat() / 255.0f, 28 | (color shr 8 and 255).toFloat() / 255.0f, 29 | (color and 255).toFloat() / 255.0f, 30 | (color shr 24 and 255).toFloat() / 255.0f 31 | ) 32 | } 33 | 34 | fun setAlpha(a: Float) = apply { super.setAlphaF(a) } 35 | 36 | fun remove() = apply { 37 | super.setDead() 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/objects/display/DisplayHandler.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.objects.display 2 | 3 | import cc.hyperium.event.InvokeEvent 4 | import cc.hyperium.event.render.RenderHUDEvent 5 | import com.chattriggers.ctjs.utils.kotlin.KotlinListener 6 | import org.lwjgl.opengl.GL11 7 | 8 | @KotlinListener 9 | object DisplayHandler { 10 | private var displays = mutableListOf() 11 | 12 | fun registerDisplay(display: Display) = displays.add(display) 13 | fun clearDisplays() = displays.clear() 14 | 15 | @InvokeEvent 16 | fun renderDisplays(event: RenderHUDEvent) { 17 | GL11.glPushMatrix() 18 | displays.forEach { it.render() } 19 | GL11.glPopMatrix() 20 | } 21 | 22 | enum class Background { 23 | NONE, FULL, PER_LINE; 24 | } 25 | 26 | enum class Align { 27 | NONE, LEFT, CENTER, RIGHT; 28 | } 29 | 30 | enum class Order { 31 | UP, DOWN; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/objects/gui/GuiHandler.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.objects.gui 2 | 3 | import cc.hyperium.event.InvokeEvent 4 | import cc.hyperium.event.client.TickEvent 5 | import com.chattriggers.ctjs.utils.kotlin.KotlinListener 6 | import net.minecraft.client.Minecraft 7 | import net.minecraft.client.gui.GuiScreen 8 | 9 | @KotlinListener 10 | object GuiHandler { 11 | private val GUIs: MutableMap = mutableMapOf() 12 | 13 | fun openGui(gui: GuiScreen) { 14 | GUIs[gui] = 1 15 | } 16 | 17 | fun clearGuis() { 18 | GUIs.clear() 19 | } 20 | 21 | @InvokeEvent 22 | fun onTick(event: TickEvent) { 23 | GUIs.forEach { 24 | if (it.value == 0) { 25 | Minecraft.getMinecraft().displayGuiScreen(it.key) 26 | GUIs[it.key] = -1 27 | } else { 28 | GUIs[it.key] = 0 29 | } 30 | } 31 | 32 | GUIs.entries.removeIf { 33 | it.value == -1 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/wrappers/objects/Chunk.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.wrappers.objects 2 | 3 | import com.chattriggers.ctjs.utils.kotlin.External 4 | import com.chattriggers.ctjs.utils.kotlin.MCChunk 5 | import java.util.stream.Collectors 6 | 7 | @External 8 | class Chunk(val chunk: MCChunk) { 9 | /** 10 | * Gets every entity in this chunk 11 | * 12 | * @return the entity list 13 | */ 14 | fun getAllEntities(): List { 15 | return chunk.entityLists.toList().flatten().map { 16 | Entity(it) 17 | } 18 | } 19 | 20 | /** 21 | * Gets every entity in this chunk of a certain class 22 | * 23 | * @param clazz the class to filter for (Use `Java.type().class` to get this) 24 | * @return the entity list 25 | */ 26 | fun getAllEntitiesOfType(clazz: Class<*>): List { 27 | return getAllEntities().filter { 28 | it.entity.javaClass == clazz 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/wrappers/objects/PotionEffect.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.wrappers.objects 2 | 3 | import com.chattriggers.ctjs.utils.kotlin.External 4 | import com.chattriggers.ctjs.utils.kotlin.MCPotionEffect 5 | 6 | @External 7 | class PotionEffect(private val effect: MCPotionEffect) { 8 | fun getName(): String = effect.effectName 9 | 10 | fun getAmplifier(): Int = effect.amplifier 11 | 12 | fun getDuration(): Int = effect.duration 13 | 14 | fun getID(): Int = effect.potionID 15 | 16 | fun isAmbient(): Boolean = effect.isAmbient 17 | 18 | fun isDurationMax(): Boolean = effect.isPotionDurationMax 19 | 20 | fun showsParticles(): Boolean = effect.isShowParticles 21 | 22 | override fun toString() = effect.toString() 23 | } 24 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/wrappers/objects/block/Sign.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.wrappers.objects.block 2 | 3 | import com.chattriggers.ctjs.minecraft.objects.message.Message 4 | import com.chattriggers.ctjs.minecraft.wrappers.World 5 | import com.chattriggers.ctjs.utils.kotlin.External 6 | import net.minecraft.tileentity.TileEntitySign 7 | 8 | /** 9 | * Creates a new Sign object wrapper.
10 | * Returned with {@link Player#lookingAt()} when looking at a sign.
11 | * Extends {@link Block}. 12 | * 13 | * @param block the {@link Block} to convert to a Sign 14 | */ 15 | @External 16 | class Sign(block: Block) : Block(block) { 17 | private val sign: TileEntitySign = World.getWorld()!!.getTileEntity(blockPos) as TileEntitySign 18 | 19 | fun getLines(): List = sign.signText.map { Message(it) } 20 | 21 | fun getFormattedLines(): List = sign.signText.map { it.formattedText } 22 | 23 | fun getUnformattedLines(): List = sign.signText.map { it.unformattedText } 24 | 25 | override fun toString() = 26 | "Sign{lines=${getLines()}, name=${getRegistryName()}, x=${getX()}, y=${getY()}, z=${getZ()}}" 27 | } 28 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/wrappers/objects/inventory/action/DropAction.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.wrappers.objects.inventory.action 2 | 3 | import com.chattriggers.ctjs.utils.kotlin.External 4 | 5 | @External 6 | class DropAction(slot: Int, windowId: Int) : Action(slot, windowId) { 7 | private var holdingCtrl = false 8 | 9 | fun getHoldingCtrl(): Boolean = holdingCtrl 10 | 11 | /** 12 | * Whether the click should act as if control is being held (defaults to false) 13 | * 14 | * @param holdingCtrl to hold ctrl or not 15 | */ 16 | fun setHoldingCtrl(holdingCtrl: Boolean) = apply { 17 | this.holdingCtrl = holdingCtrl 18 | } 19 | 20 | override fun complete() { 21 | doClick( 22 | if (holdingCtrl) 1 else 0, 23 | 4 24 | ) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/wrappers/objects/inventory/action/KeyAction.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.wrappers.objects.inventory.action 2 | 3 | import com.chattriggers.ctjs.utils.kotlin.External 4 | 5 | @External 6 | class KeyAction(slot: Int, windowId: Int) : Action(slot, windowId) { 7 | private var key: Int = -1 8 | 9 | fun getKey(): Int = key 10 | 11 | /** 12 | * Which key to act as if has been clicked (REQUIRED). 13 | * Options currently are 0-8, representing the hotbar keys 14 | * 15 | * @param key which key to "click" 16 | */ 17 | fun setKey(key: Int) = apply { 18 | this.key = key 19 | } 20 | 21 | override fun complete() { 22 | doClick(key, 2) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/wrappers/objects/threading/ThreadHandler.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.wrappers.objects.threading 2 | 3 | import java.util.* 4 | 5 | class ThreadHandler { 6 | private val activeThreads: MutableList 7 | 8 | init { 9 | activeThreads = ArrayList() 10 | } 11 | 12 | fun addThread(thread: WrappedThread) = 13 | activeThreads.add(thread) 14 | 15 | fun removeThread(thread: WrappedThread) = 16 | activeThreads.removeIf { thread1 -> thread1 === thread } 17 | 18 | fun stopThreads() { 19 | activeThreads.forEach { it.interrupt() } 20 | activeThreads.clear() 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/minecraft/wrappers/objects/threading/WrappedThread.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.minecraft.wrappers.objects.threading 2 | 3 | class WrappedThread(task: Runnable) : Thread({ 4 | task.run() 5 | }) -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/triggers/OnRegularTrigger.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.triggers 2 | 3 | import com.chattriggers.ctjs.engine.ILoader 4 | import com.chattriggers.ctjs.utils.kotlin.External 5 | 6 | @External 7 | class OnRegularTrigger(method: Any, triggerType: TriggerType, loader: ILoader) : 8 | OnTrigger(method, triggerType, loader) { 9 | override fun trigger(vararg args: Any?) { 10 | callMethod(*args) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/triggers/OnRenderTrigger.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.triggers 2 | 3 | import cc.hyperium.event.render.RenderHUDEvent 4 | import com.chattriggers.ctjs.engine.ILoader 5 | 6 | class OnRenderTrigger(method: Any, triggerType: TriggerType, loader: ILoader) : OnTrigger(method, triggerType, loader) { 7 | private var triggerIfCanceled: Boolean = true 8 | 9 | /** 10 | * Sets if the render trigger should run if the event has already been canceled. 11 | * True by default. 12 | * @param bool Boolean to set 13 | * @return the trigger object for method chaining 14 | */ 15 | fun triggerIfCanceled(bool: Boolean) = apply { this.triggerIfCanceled = bool } 16 | 17 | override fun trigger(vararg args: Any?) { 18 | if (args[0] !is RenderHUDEvent) 19 | throw IllegalArgumentException("Argument 0 must be a RenderHUDEvent") 20 | 21 | callMethod(*args) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/triggers/OnSoundPlayTrigger.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.triggers 2 | 3 | import com.chattriggers.ctjs.engine.ILoader 4 | import com.chattriggers.ctjs.utils.kotlin.External 5 | 6 | @External 7 | class OnSoundPlayTrigger(method: Any, loader: ILoader) : OnTrigger(method, TriggerType.SOUND_PLAY, loader) { 8 | var soundNameCriteria = "" 9 | 10 | /** 11 | * Sets the sound name criteria.

12 | * Short hand for [OnSoundPlayTrigger.setSoundNameCriteria]. 13 | * 14 | * @param soundNameCriteria the sound name 15 | * @return the trigger for method chaining 16 | */ 17 | fun setCriteria(soundNameCriteria: String) = apply { this.soundNameCriteria = soundNameCriteria } 18 | 19 | override fun trigger(vararg args: Any?) { 20 | if (args[2] is String 21 | && soundNameCriteria != "" 22 | && !(args[2] as String).equals(soundNameCriteria, ignoreCase = true) 23 | ) 24 | return 25 | 26 | callMethod(*args) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/triggers/TriggerType.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.triggers 2 | 3 | import com.chattriggers.ctjs.engine.ModuleManager 4 | 5 | enum class TriggerType { 6 | // client 7 | CHAT, 8 | ACTION_BAR, 9 | TICK, STEP, 10 | GAME_UNLOAD, GAME_LOAD, 11 | CLICKED, DRAGGED, 12 | GUI_OPENED, SCREENSHOT_TAKEN, 13 | PICKUP_ITEM, DROP_ITEM, 14 | MESSAGE_SENT, TOOLTIP, 15 | 16 | // rendering 17 | RENDER_WORLD, 18 | BLOCK_HIGHLIGHT, 19 | RENDER_OVERLAY, RENDER_PLAYER_LIST, RENDER_BOSS_HEALTH, RENDER_DEBUG, 20 | RENDER_CROSSHAIR, RENDER_HOTBAR, RENDER_EXPERIENCE, 21 | RENDER_HEALTH, RENDER_FOOD, RENDER_MOUNT_HEALTH, RENDER_AIR, 22 | 23 | // world 24 | PLAYER_JOIN, 25 | PLAYER_LEAVE, 26 | SOUND_PLAY, NOTE_BLOCK_PLAY, NOTE_BLOCK_CHANGE, 27 | WORLD_LOAD, WORLD_UNLOAD, 28 | 29 | // misc 30 | COMMAND, 31 | OTHER; 32 | 33 | fun trigger(vararg args: Any?) { 34 | ModuleManager.trigger(this, *args) 35 | } 36 | 37 | fun triggerAll(vararg args: Any?) { 38 | trigger(*args) 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/utils/Cancellable.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.utils 2 | 3 | class Cancellable { 4 | var isCancelled: Boolean = false 5 | } 6 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/utils/Utils.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.utils 2 | 3 | import com.google.common.collect.UnmodifiableListIterator 4 | import java.util.* 5 | 6 | object Utils { 7 | @JvmField 8 | val EMPTY_ITERATOR = object : UnmodifiableListIterator() { 9 | override fun hasNext(): Boolean = false 10 | 11 | override fun next(): Any { 12 | throw NoSuchElementException() 13 | } 14 | 15 | override fun hasPrevious(): Boolean = false 16 | 17 | override fun previous(): Any { 18 | throw NoSuchElementException() 19 | } 20 | 21 | override fun nextIndex(): Int = 0 22 | 23 | override fun previousIndex(): Int = -1 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/utils/config/ConfigAnnotations.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.utils.config 2 | 3 | import kotlin.reflect.KClass 4 | 5 | @Retention(AnnotationRetention.RUNTIME) 6 | @Target(AnnotationTarget.PROPERTY) 7 | annotation class ConfigOpt(val name: String, val x: Int, val y: Int, val type: KClass<*>) 8 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/utils/console/TextAreaOutputStream.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.utils.console 2 | 3 | import java.io.File 4 | import java.io.OutputStream 5 | import java.io.PrintStream 6 | import javax.swing.JTextArea 7 | 8 | class TextAreaOutputStream(private val textArea: JTextArea, lang: String) : OutputStream() { 9 | private val buffer = StringBuilder(128) 10 | 11 | init { 12 | val file = File("./logs/ctjs-$lang.log") 13 | file.delete() 14 | file.createNewFile() 15 | } 16 | 17 | private val logger = File("./logs/ctjs-$lang.log").bufferedWriter() 18 | 19 | val printStream = PrintStream(this) 20 | 21 | override fun write(b: Int) { 22 | val letter = b.toChar() 23 | buffer.append(letter) 24 | 25 | if (letter == '\n') { 26 | val line = buffer.toString() 27 | 28 | textArea.append(line) 29 | logger.append(line) 30 | 31 | buffer.delete(0, buffer.length) 32 | } 33 | } 34 | 35 | fun println(line: Any) { 36 | printStream.println(line) 37 | } 38 | 39 | fun clear() { 40 | textArea.text = "" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/kotlin/com/chattriggers/ctjs/utils/kotlin/Extensions.kt: -------------------------------------------------------------------------------- 1 | package com.chattriggers.ctjs.utils.kotlin 2 | 3 | import net.minecraft.client.renderer.Tessellator 4 | 5 | fun ITextComponent.getStyling(): TextStyle = 6 | this.chatStyle!! 7 | 8 | fun TextStyle.getClick(): TextClickEvent? = 9 | chatClickEvent 10 | 11 | fun TextStyle.getHover(): TextHoverEvent? = 12 | chatHoverEvent 13 | 14 | fun Tessellator.getRenderer(): WorldRenderer = 15 | worldRenderer 16 | 17 | operator fun String.times(times: Number): String { 18 | val stringBuilder = StringBuilder() 19 | 20 | for (i in 0..times.toInt()) { 21 | stringBuilder.append(this) 22 | } 23 | 24 | return stringBuilder.toString() 25 | } 26 | -------------------------------------------------------------------------------- /src/main/resources/UriScheme.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/UriScheme.class -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/hyperium/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/fonts/Raleway-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/hyperium/fonts/Raleway-SemiBold.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/hyperium/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/hyperium/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/fonts/RobotoCondensed-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/hyperium/fonts/RobotoCondensed-Regular.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/fonts/SegoeUI-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/hyperium/fonts/SegoeUI-Light.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/icons/icon-16x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/hyperium/icons/icon-16x.png -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/icons/icon-32x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/hyperium/icons/icon-32x.png -------------------------------------------------------------------------------- /src/main/resources/assets/hyperium/pack.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "pack_format": 1, 4 | "description": "Resources" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/sounds/zoo.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/sounds/zoo.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/chromahud/iconsheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/chromahud/iconsheet.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/cosmetics/companions/hamsterbrown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/cosmetics/companions/hamsterbrown.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/cosmetics/hats/fez.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/cosmetics/hats/fez.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/cosmetics/hats/lego.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/cosmetics/hats/lego.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/cosmetics/hats/tophat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/cosmetics/hats/tophat.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/cosmetics/wings/dragonwings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/cosmetics/wings/dragonwings.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/font/Montserrat-Bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/font/Montserrat-Bold.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/font/Montserrat-Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/font/Montserrat-Light.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/font/Montserrat-Regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/font/Montserrat-Regular.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/hyperium-splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/hyperium-splash.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/arrow_down_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/arrow_down_alt.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/arrow_left.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/arrow_right.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/arrow_up_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/arrow_up_alt.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/backgrounds/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/backgrounds/1.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/backgrounds/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/backgrounds/2.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/backgrounds/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/backgrounds/3.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/backgrounds/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/backgrounds/4.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/backgrounds/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/backgrounds/5.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/backgrounds/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/backgrounds/6.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/backgrounds/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/backgrounds/7.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/close.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/exit.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/extension.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/material/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/material/settings.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/world-loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HyperiumClient/Hyperium/720059116537592859cf25e13586de7980a9113e/src/main/resources/assets/minecraft/textures/world-loading.png -------------------------------------------------------------------------------- /src/main/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/main/resources/remoteresources/chat_regex.json: -------------------------------------------------------------------------------- 1 | { 2 | "skywars_rating": "(?^(-|\\+)?[0-9]\\d*(\\.\\d+)?) Rating \\(\\D?(?\\d+)\\)", 3 | "private_message_to": "To (?\\[.+] )?(?\\S{1,16}): (?.*)", 4 | "private_message_from": "From (?\\[.+] )?(?\\S{1,16}): (?.*)", 5 | "friend_request": "Friend request from ((?\\[.+] )?(?\\w+)).*", 6 | "guild_chat": "Guild > (?\\[.+] )?(?\\S{1,16}): (?.*)", 7 | "party_chat": "Party > (?\\[.+] )?(?\\S{1,16}): (?.*)", 8 | "party_invite": "(\\[.*] )?(?\\w+) has invited you to join (?\\w+) party!", 9 | "skywars_kill": "(?\\S{1,16}) (was|got|met|took|be) (?.*) (by|to) (?\\S{1,16})", 10 | "bedwars_kill": "(?\\S{1,16}) played|lost|tangoed|slipped|fell|died|fought|stumbled|be|was|took (?.*) by|for|from|to (?\\S{1,16}).*", 11 | "megawalls_kill": "(?\\S{1,16}) (was|met|lost|drank|be) (?.*) (by|from|for|to) (?\\S{1,16})", 12 | "blitz_kill": "(?\\S{1,16}) was killed by (?\\S{1,16})", 13 | "quest_complete": "(?Daily|Weekly)? Quest: (?.*) Completed!", 14 | "win": "(^\\S+) - (?.*)" 15 | } 16 | --------------------------------------------------------------------------------