diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..64a98df
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,11 @@
+---
+BasedOnStyle: Google
+UseTab: ForContinuationAndIndentation
+IndentWidth: 4
+TabWidth: 4
+IndentCaseLabels: false
+ColumnLimit: 0
+BreakBeforeBraces: Attach
+AccessModifierOffset: -4
+---
+Language: Cpp
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..cd83d85
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,30 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..11fc491
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: enhancement
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/conce.png b/.github/conce.png
new file mode 100644
index 0000000..f313a67
Binary files /dev/null and b/.github/conce.png differ
diff --git a/.github/horion-banner.png b/.github/horion-banner.png
new file mode 100644
index 0000000..4665b54
Binary files /dev/null and b/.github/horion-banner.png differ
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
new file mode 100644
index 0000000..9ca1403
--- /dev/null
+++ b/.github/workflows/msbuild.yml
@@ -0,0 +1,32 @@
+name: MSBuild
+
+on: [pull_request]
+
+env:
+ # Path to the solution file relative to the root of the project.
+ SOLUTION_FILE_PATH: .
+
+ # Configuration type to build.
+ # You can convert this to a build matrix if you need coverage of multiple configuration types.
+ # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+ BUILD_CONFIGURATION: Release
+
+jobs:
+ build:
+ runs-on: windows-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Add MSBuild to PATH
+ uses: microsoft/setup-msbuild@v1.0.2
+
+ - name: Restore NuGet packages
+ working-directory: ${{env.GITHUB_WORKSPACE}}
+ run: nuget restore ${{env.SOLUTION_FILE_PATH}}
+
+ - name: Build
+ working-directory: ${{env.GITHUB_WORKSPACE}}
+ # Add additional options to the MSBuild command line here (like platform or verbosity level).
+ # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
+ run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9c5c736
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,497 @@
+
+# Created by https://www.toptal.com/developers/gitignore/api/cmake,clion+all,visualstudio,c++
+# Edit at https://www.toptal.com/developers/gitignore?templates=cmake,clion+all,visualstudio,c++
+
+### C++ ###
+# Prerequisites
+*.d
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+*.dll
+
+# Fortran module files
+*.mod
+*.smod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+
+# Executables
+*.exe
+*.out
+*.app
+
+### CLion+all ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/artifacts
+# .idea/compiler.xml
+# .idea/jarRepositories.xml
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### CLion+all Patch ###
+# Ignores the whole .idea folder and all .iml files
+# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
+
+.idea/
+
+# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
+
+*.iml
+modules.xml
+.idea/misc.xml
+*.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
+
+### CMake ###
+CMakeLists.txt.user
+CMakeCache.txt
+CMakeFiles
+CMakeScripts
+Testing
+Makefile
+cmake_install.cmake
+install_manifest.txt
+compile_commands.json
+CTestTestfile.cmake
+_deps
+
+### CMake Patch ###
+# External projects
+*-prefix/
+
+### VisualStudio ###
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.iobj
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*[.json, .xml, .info]
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# End of https://www.toptal.com/developers/gitignore/api/cmake,clion+all,visualstudio,c++
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..3d663ed
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,348 @@
+cmake_minimum_required(VERSION 3.12)
+project(Horion)
+
+set(CMAKE_CXX_STANDARD 17)
+
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ add_compile_options(-Wno-dynamic-class-memaccess -Wno-microsoft-goto -Wno-delete-incomplete /EHsc /Ob1)
+elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ add_compile_options(/MP /Ob1)
+endif()
+
+add_compile_definitions(WIN32_LEAN_AND_MEAN)
+add_compile_definitions(NOMINMAX)
+if(CMAKE_BUILD_TYPE MATCHES Release)
+
+elseif(CMAKE_BUILD_TYPE MATCHES BetaConf)
+ add_compile_definitions(_BETA)
+endif()
+
+include_directories(.)
+include_directories(include)
+include_directories(include/glm/)
+
+link_directories(minhook)
+
+add_library(Horion SHARED
+ Horion/Command/Commands/BindCommand.cpp
+ Horion/Command/Commands/BindCommand.h
+ Horion/Command/Commands/BruhCommand.cpp
+ Horion/Command/Commands/BruhCommand.h
+ Horion/Command/Commands/CommandBlockExploitCommand.cpp
+ Horion/Command/Commands/CommandBlockExploitCommand.h
+ Horion/Command/Commands/ConfigCommand.cpp
+ Horion/Command/Commands/ConfigCommand.h
+ Horion/Command/Commands/CoordsCommand.cpp
+ Horion/Command/Commands/CoordsCommand.h
+ Horion/Command/Commands/DamageCommand.cpp
+ Horion/Command/Commands/DamageCommand.h
+ Horion/Command/Commands/DupeCommand.cpp
+ Horion/Command/Commands/DupeCommand.h
+ Horion/Command/Commands/EjectCommand.cpp
+ Horion/Command/Commands/EjectCommand.h
+ Horion/Command/Commands/EnchantCommand.cpp
+ Horion/Command/Commands/EnchantCommand.h
+ Horion/Command/Commands/ExecuteCommand.cpp
+ Horion/Command/Commands/ExecuteCommand.h
+ Horion/Command/Commands/FriendListCommand.cpp
+ Horion/Command/Commands/FriendListCommand.h
+ Horion/Command/Commands/GameModeCommand.cpp
+ Horion/Command/Commands/GameModeCommand.h
+ Horion/Command/Commands/GiveCommand.cpp
+ Horion/Command/Commands/GiveCommand.h
+ Horion/Command/Commands/HelpCommand.cpp
+ Horion/Command/Commands/HelpCommand.h
+ Horion/Command/Commands/HideCommand.cpp
+ Horion/Command/Commands/HideCommand.h
+ Horion/Command/Commands/ICommand.cpp
+ Horion/Command/Commands/ICommand.h
+ Horion/Command/Commands/ModulesCommand.cpp
+ Horion/Command/Commands/ModulesCommand.h
+ Horion/Command/Commands/NameSpoofCommand.cpp
+ Horion/Command/Commands/NameSpoofCommand.h
+ Horion/Command/Commands/NbtCommand.cpp
+ Horion/Command/Commands/NbtCommand.h
+ Horion/Command/Commands/PanicCommand.cpp
+ Horion/Command/Commands/PanicCommand.h
+ Horion/Command/Commands/PlayerTeleportCommand.cpp
+ Horion/Command/Commands/PlayerTeleportCommand.h
+ Horion/Command/Commands/RelativeTeleportCommand.cpp
+ Horion/Command/Commands/RelativeTeleportCommand.h
+ Horion/Command/Commands/SayCommand.cpp
+ Horion/Command/Commands/SayCommand.h
+ Horion/Command/Commands/ScriptCommand.cpp
+ Horion/Command/Commands/ScriptCommand.h
+ Horion/Command/Commands/ServerCommand.cpp
+ Horion/Command/Commands/ServerCommand.h
+ Horion/Command/Commands/setoffhandCommand.cpp
+ Horion/Command/Commands/setoffhandCommand.h
+ Horion/Command/Commands/SetprefixCommand.cpp
+ Horion/Command/Commands/SetprefixCommand.h
+ Horion/Command/Commands/SpammerCommand.cpp
+ Horion/Command/Commands/SpammerCommand.h
+ Horion/Command/Commands/TeleportCommand.cpp
+ Horion/Command/Commands/TeleportCommand.h
+ Horion/Command/Commands/TestCommand.cpp
+ Horion/Command/Commands/TestCommand.h
+ Horion/Command/Commands/ToggleCommand.cpp
+ Horion/Command/Commands/ToggleCommand.h
+ Horion/Command/Commands/UnbindCommand.cpp
+ Horion/Command/Commands/UnbindCommand.h
+ Horion/Command/CommandMgr.cpp
+ Horion/Command/CommandMgr.h
+ Horion/Config/AccountInformation.cpp
+ Horion/Config/AccountInformation.h
+ Horion/Config/ConfigManager.cpp
+ Horion/Config/ConfigManager.h
+ Horion/FriendList/FriendList.cpp
+ Horion/FriendList/FriendList.h
+ Horion/Menu/ClickGui.cpp
+ Horion/Menu/ClickGui.h
+ Horion/Menu/TabGui.cpp
+ Horion/Menu/TabGui.h
+ Horion/Module/Modules/Aimbot.cpp
+ Horion/Module/Modules/Aimbot.h
+ Horion/Module/Modules/AirJump.cpp
+ Horion/Module/Modules/AirJump.h
+ Horion/Module/Modules/AirStuck.cpp
+ Horion/Module/Modules/AirStuck.h
+ Horion/Module/Modules/AirSwim.cpp
+ Horion/Module/Modules/AirSwim.h
+ Horion/Module/Modules/AntiBot.cpp
+ Horion/Module/Modules/AntiBot.h
+ Horion/Module/Modules/AntiVoid.cpp
+ Horion/Module/Modules/AntiVoid.h
+ Horion/Module/Modules/AutoArmor.cpp
+ Horion/Module/Modules/AutoArmor.h
+ Horion/Module/Modules/AutoClicker.cpp
+ Horion/Module/Modules/AutoClicker.h
+ Horion/Module/Modules/AutoGapple.cpp
+ Horion/Module/Modules/AutoGapple.h
+ Horion/Module/Modules/AutoSneak.cpp
+ Horion/Module/Modules/AutoSneak.h
+ Horion/Module/Modules/AutoSprint.cpp
+ Horion/Module/Modules/AutoSprint.h
+ Horion/Module/Modules/AutoTotem.cpp
+ Horion/Module/Modules/AutoTotem.h
+ Horion/Module/Modules/Bhop.cpp
+ Horion/Module/Modules/Bhop.h
+ Horion/Module/Modules/Blink.cpp
+ Horion/Module/Modules/Blink.h
+ Horion/Module/Modules/BowAimbot.cpp
+ Horion/Module/Modules/BowAimbot.h
+ Horion/Module/Modules/ChestAura.cpp
+ Horion/Module/Modules/ChestAura.h
+ Horion/Module/Modules/ChestESP.cpp
+ Horion/Module/Modules/ChestESP.h
+ Horion/Module/Modules/ChestStealer.cpp
+ Horion/Module/Modules/ChestStealer.h
+ Horion/Module/Modules/ClickGuiMod.cpp
+ Horion/Module/Modules/ClickGuiMod.h
+ Horion/Module/Modules/Crasher.cpp
+ Horion/Module/Modules/Crasher.h
+ Horion/Module/Modules/Criticals.cpp
+ Horion/Module/Modules/Criticals.h
+ Horion/Module/Modules/CrystalAura.cpp
+ Horion/Module/Modules/CrystalAura.h
+ Horion/Module/Modules/CubeGlide.cpp
+ Horion/Module/Modules/CubeGlide.h
+ Horion/Module/Modules/Derp.cpp
+ Horion/Module/Modules/Derp.h
+ Horion/Module/Modules/EditionFaker.cpp
+ Horion/Module/Modules/EditionFaker.h
+ Horion/Module/Modules/ESP.cpp
+ Horion/Module/Modules/ESP.h
+ Horion/Module/Modules/FastEast.cpp
+ Horion/Module/Modules/FastEat.h
+ Horion/Module/Modules/FastLadder.cpp
+ Horion/Module/Modules/FastLadder.h
+ Horion/Module/Modules/Fly.cpp
+ Horion/Module/Modules/Fly.h
+ Horion/Module/Modules/Freecam.cpp
+ Horion/Module/Modules/Freecam.h
+ Horion/Module/Modules/Fucker.cpp
+ Horion/Module/Modules/Fucker.h
+ Horion/Module/Modules/FullBright.cpp
+ Horion/Module/Modules/FullBright.h
+ Horion/Module/Modules/Glide.cpp
+ Horion/Module/Modules/Glide.h
+ Horion/Module/Modules/Godmode.cpp
+ Horion/Module/Modules/Godmode.h
+ Horion/Module/Modules/HighJump.cpp
+ Horion/Module/Modules/HighJump.h
+ Horion/Module/Modules/Hitbox.cpp
+ Horion/Module/Modules/Hitbox.h
+ Horion/Module/Modules/HudModule.cpp
+ Horion/Module/Modules/HudModule.h
+ Horion/Module/Modules/ExtendedBlockReach.cpp
+ Horion/Module/Modules/ExtendedBlockReach.h
+ Horion/Module/Modules/InfiniteReach.cpp
+ Horion/Module/Modules/InfiniteReach.h
+ Horion/Module/Modules/InstaBreak.cpp
+ Horion/Module/Modules/InstaBreak.h
+ Horion/Module/Modules/InventoryCleaner.cpp
+ Horion/Module/Modules/InventoryCleaner.h
+ Horion/Module/Modules/InventoryMove.cpp
+ Horion/Module/Modules/InventoryMove.h
+ Horion/Module/Modules/JavascriptModule.cpp
+ Horion/Module/Modules/JavascriptModule.h
+ Horion/Module/Modules/Jesus.cpp
+ Horion/Module/Modules/Jesus.h
+ Horion/Module/Modules/Jetpack.cpp
+ Horion/Module/Modules/Jetpack.h
+ Horion/Module/Modules/Killaura.cpp
+ Horion/Module/Modules/Killaura.h
+ Horion/Module/Modules/MidClick.cpp
+ Horion/Module/Modules/MidClick.h
+ Horion/Module/Modules/Module.cpp
+ Horion/Module/Modules/Module.h
+ Horion/Module/Modules/NameTags.cpp
+ Horion/Module/Modules/NameTags.h
+ Horion/Module/Modules/Nbt.cpp
+ Horion/Module/Modules/Nbt.h
+ Horion/Module/Modules/NightMode.cpp
+ Horion/Module/Modules/NightMode.h
+ Horion/Module/Modules/NoFall.cpp
+ Horion/Module/Modules/NoFall.h
+ Horion/Module/Modules/NoFriends.cpp
+ Horion/Module/Modules/NoFriends.h
+ Horion/Module/Modules/NoPacket.cpp
+ Horion/Module/Modules/NoPacket.h
+ Horion/Module/Modules/NoPaintingCrash.cpp
+ Horion/Module/Modules/NoPaintingCrash.h
+ Horion/Module/Modules/NoSlowDown.cpp
+ Horion/Module/Modules/NoSlowDown.h
+ Horion/Module/Modules/NoSwing.cpp
+ Horion/Module/Modules/NoSwing.h
+ Horion/Module/Modules/NoWeb.cpp
+ Horion/Module/Modules/NoWeb.h
+ Horion/Module/Modules/Nuker.cpp
+ Horion/Module/Modules/Nuker.h
+ Horion/Module/Modules/PacketLogger.cpp
+ Horion/Module/Modules/PacketLogger.h
+ Horion/Module/Modules/Phase.cpp
+ Horion/Module/Modules/Phase.h
+ Horion/Module/Modules/RainbowSky.cpp
+ Horion/Module/Modules/RainbowSky.h
+ Horion/Module/Modules/Reach.cpp
+ Horion/Module/Modules/Reach.h
+ Horion/Module/Modules/Scaffold.cpp
+ Horion/Module/Modules/Scaffold.h
+ Horion/Module/Modules/Spammer.cpp
+ Horion/Module/Modules/Spammer.h
+ Horion/Module/Modules/Speed.cpp
+ Horion/Module/Modules/Speed.h
+ Horion/Module/Modules/StackableItem.cpp
+ Horion/Module/Modules/StackableItem.h
+ Horion/Module/Modules/Step.cpp
+ Horion/Module/Modules/Step.h
+ Horion/Module/Modules/Teams.cpp
+ Horion/Module/Modules/Teams.h
+ Horion/Module/Modules/Teleport.cpp
+ Horion/Module/Modules/Teleport.h
+ Horion/Module/Modules/TestModule.cpp
+ Horion/Module/Modules/TestModule.h
+ Horion/Module/Modules/Timer.cpp
+ Horion/Module/Modules/Timer.h
+ Horion/Module/Modules/Tower.cpp
+ Horion/Module/Modules/Tower.h
+ Horion/Module/Modules/Tracer.cpp
+ Horion/Module/Modules/Tracer.h
+ Horion/Module/Modules/TriggerBot.cpp
+ Horion/Module/Modules/TriggerBot.h
+ Horion/Module/Modules/Velocity.cpp
+ Horion/Module/Modules/Velocity.h
+ Horion/Module/Modules/Xray.cpp
+ Horion/Module/Modules/Xray.h
+ Horion/Module/Modules/Zoom.cpp
+ Horion/Module/Modules/Zoom.h
+ Horion/Module/ModuleManager.cpp
+ Horion/Module/ModuleManager.h
+ Horion/Scripting/Functions/CommandManagerFunctions.cpp
+ Horion/Scripting/Functions/CommandManagerFunctions.h
+ Horion/Scripting/Functions/EntityFunctions.cpp
+ Horion/Scripting/Functions/EntityFunctions.h
+ Horion/Scripting/Functions/GameFunctions.cpp
+ Horion/Scripting/Functions/GameFunctions.h
+ Horion/Scripting/Functions/GlobalFunctions.cpp
+ Horion/Scripting/Functions/GlobalFunctions.h
+ Horion/Scripting/Functions/HorionFunctions.cpp
+ Horion/Scripting/Functions/HorionFunctions.h
+ Horion/Scripting/Functions/LocalPlayerFunctions.cpp
+ Horion/Scripting/Functions/LocalPlayerFunctions.h
+ Horion/Scripting/Functions/ModuleManagerFunctions.cpp
+ Horion/Scripting/Functions/ModuleManagerFunctions.h
+ Horion/Scripting/Functions/Vector3Functions.cpp
+ Horion/Scripting/Functions/Vector3Functions.h
+ Horion/Scripting/JsScriptModule.cpp
+ Horion/Scripting/JsScriptModule.h
+ Horion/Scripting/ScriptInstance.cpp
+ Horion/Scripting/ScriptInstance.h
+ Horion/Scripting/ScriptManager.cpp
+ Horion/Scripting/ScriptManager.h
+ Horion/DrawUtils.cpp
+ Horion/DrawUtils.h
+ Horion/GuiUtils.cpp
+ Horion/GuiUtils.h
+ Horion/ImmediateGui.cpp
+ Horion/ImmediateGui.h
+ Horion/Loader.cpp
+ Horion/Loader.h
+ include/chakra/ChakraCommon.h
+ include/chakra/ChakraCommonWindows.h
+ include/chakra/ChakraCore.h
+ include/chakra/ChakraCoreWindows.h
+ include/chakra/ChakraDebug.h
+ include/atlrx.h
+ include/d3dx11.h
+ include/d3dx11async.h
+ include/d3dx11core.h
+ include/d3dx11effect.h
+ include/RegExp.h
+ include/StringProcess.h
+ include/WinHttpClient.h
+ Memory/GameData.cpp
+ Memory/GameData.h
+ Memory/Hooks.cpp
+ Memory/Hooks.h
+ Memory/MinHook.h
+ Memory/SlimMem.cpp
+ Memory/SlimMem.h
+ SDK/CBlockLegacy.h
+ SDK/CChestBlockActor.h
+ SDK/CClientInstance.h
+ SDK/CClientInstanceScreenModel.h
+ SDK/CComplexInventoryTransaction.h
+ SDK/CEntity.h
+ SDK/CEntityList.h
+ SDK/CGameMode.h
+ SDK/CGameSettingsInput.h
+ SDK/CHIDController.h
+ SDK/CInventory.h
+ SDK/CInventoryTransaction.h
+ SDK/CItem.h
+ SDK/CLoopbackPacketSender.h
+ SDK/CMinecraftUIRenderContext.h
+ SDK/CMoveInputHandler.h
+ SDK/CPacket.h
+ SDK/CRakNetInstance.h
+ SDK/CUIScene.h
+ SDK/MojangsonToken.h
+ SDK/Tag.h
+ SDK/TextHolder.h
+ Utils/ChakraHelper.h
+ Utils/DllHelper.h
+ Utils/HMath.h
+ Utils/Json.hpp
+ Utils/Logger.cpp
+ Utils/Logger.h
+ Utils/SkinUtil.cpp
+ Utils/SkinUtil.h
+ Utils/Target.cpp
+ Utils/Target.h
+ Utils/TextFormat.cpp
+ Utils/TextFormat.h
+ Utils/Utils.cpp
+ Utils/Utils.h
+ Utils/xorstr.h
+ resource.h SDK/TextHolder.cpp SDK/CChestBlockActor.cpp SDK/Tag.cpp Utils/keys.h SDK/CBlockLegacy.cpp SDK/CItem.cpp SDK/CInventory.cpp SDK/CInventoryTransaction.cpp SDK/CEntity.cpp SDK/CComplexInventoryTransaction.cpp SDK/CPacket.cpp SDK/CMinecraftUIRenderContext.cpp SDK/CClientInstance.cpp SDK/CMoveInputHandler.cpp SDK/CImageBuffer.h Horion/Module/Modules/Freelook.cpp Horion/Module/Modules/Freelook.h SDK/CCamera.h SDK/CCamera.cpp Horion/Module/Modules/NoHurtcam.cpp Horion/Module/Modules/NoHurtcam.h Horion/Module/Modules/AntiImmobile.cpp Horion/Module/Modules/AntiImmobile.h Horion/path/JoePathFinder.cpp Horion/path/JoePathFinder.h Horion/path/JoePath.cpp Horion/path/JoePath.h Horion/path/JoeSegment.cpp Horion/path/JoeSegment.h Horion/path/JoeMovementController.cpp Horion/path/JoeMovementController.h Horion/path/goals/JoeGoal.cpp Horion/path/goals/JoeGoal.h Horion/path/goals/JoeGoalXYZ.cpp Horion/path/goals/JoeGoalXYZ.h Horion/path/goals/JoeGoalXZ.cpp Horion/path/goals/JoeGoalXZ.h Horion/path/JoeConstants.h Horion/path/goals/JoeGoalY.cpp Horion/path/goals/JoeGoalY.h Horion/Module/Modules/FollowPathModule.cpp Horion/Module/Modules/FollowPathModule.h Horion/Command/Commands/PathCommand.cpp Horion/Command/Commands/PathCommand.h Horion/path/JoeConstants.cpp Horion/Scripting/Functions/LevelFunctions.cpp Horion/Scripting/Functions/LevelFunctions.h Horion/Scripting/Functions/DrawFunctions.cpp Horion/Scripting/Functions/DrawFunctions.h "Horion/Module/Modules/Twerk.cpp" "Horion/Module/Modules/Twerk.h")
diff --git a/CppProperties.json b/CppProperties.json
new file mode 100644
index 0000000..659bf4e
--- /dev/null
+++ b/CppProperties.json
@@ -0,0 +1,21 @@
+{
+ "configurations": [
+ {
+ "inheritEnvironments": [
+ "msvc_x86"
+ ],
+ "name": "x86-Debug",
+ "includePath": [
+ "${env.INCLUDE}",
+ "${workspaceRoot}\\**"
+ ],
+ "defines": [
+ "WIN32",
+ "_DEBUG",
+ "UNICODE",
+ "_UNICODE"
+ ],
+ "intelliSenseMode": "windows-msvc-x86"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Horion.rc b/Horion.rc
new file mode 100644
index 0000000..b38bc5a
--- /dev/null
+++ b/Horion.rc
@@ -0,0 +1,76 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "winres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Franais (France) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
+#pragma code_page(1252)
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""winres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXT
+//
+
+IDR_TEXT1 TEXT "resources\\coolroblox.json"
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RCDATA
+//
+
+IDR_STEVE RCDATA "resources\\Steve.dat"
+
+
+#endif
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/Horion.sln b/Horion.sln
new file mode 100644
index 0000000..8863aa4
--- /dev/null
+++ b/Horion.sln
@@ -0,0 +1,37 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29123.88
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Horion", "Horion.vcxproj", "{499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ BetaConf|x64 = BetaConf|x64
+ BetaConf|x86 = BetaConf|x86
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.BetaConf|x64.ActiveCfg = BetaConf|x64
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.BetaConf|x64.Build.0 = BetaConf|x64
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.BetaConf|x86.ActiveCfg = BetaConf|Win32
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.BetaConf|x86.Build.0 = BetaConf|Win32
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.Debug|x64.ActiveCfg = Debug|x64
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.Debug|x64.Build.0 = Debug|x64
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.Debug|x86.ActiveCfg = Debug|Win32
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.Debug|x86.Build.0 = Debug|Win32
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.Release|x64.ActiveCfg = Release|x64
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.Release|x64.Build.0 = Release|x64
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.Release|x86.ActiveCfg = Release|Win32
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {704429D9-0B78-4294-8BFD-0DD00BDF9CE0}
+ EndGlobalSection
+EndGlobal
diff --git a/Horion.vcxproj b/Horion.vcxproj
new file mode 100644
index 0000000..10008cb
--- /dev/null
+++ b/Horion.vcxproj
@@ -0,0 +1,656 @@
+
+
+
+
+ BetaConf
+ Win32
+
+
+ BetaConf
+ x64
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 15.0
+ {499784D2-7EA3-4CBE-BD93-EC0DBBC42FCD}
+ Win32Proj
+ 10.0
+
+
+
+ DynamicLibrary
+ true
+ v142
+ false
+
+
+ DynamicLibrary
+ false
+ v141
+
+
+ DynamicLibrary
+ false
+ v141
+
+
+ DynamicLibrary
+ true
+ v142
+ Unicode
+ false
+ true
+
+
+ DynamicLibrary
+ false
+ v142
+ Unicode
+ true
+ false
+
+
+ DynamicLibrary
+ false
+ v142
+ Unicode
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;D:\ProgrammeX\Dxx\Lib\x64;$(ProjectDir)minhook;$(LibraryPath)
+ D:\ProgrammeX\Dxx\Include;$(ProjectDir)include\glm;$(IncludePath)
+
+
+ C:\Program Files %28x86%29\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64;$(ProjectDir)minhook;$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);$(ProjectDir)include\glm
+
+
+ C:\Program Files %28x86%29\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64;$(ProjectDir)minhook;$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);$(ProjectDir)include\glm
+
+
+
+ WIN32;_DEBUG;_WINDOWS;_USRDLL;HORION_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ ProgramDatabase
+ Disabled
+
+
+ MachineX86
+ true
+ Windows
+ true
+
+
+
+
+ WIN32;NDEBUG;_WINDOWS;_USRDLL;HORION_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ ProgramDatabase
+
+
+ MachineX86
+ true
+ Windows
+ true
+ true
+
+
+
+
+ WIN32;NDEBUG;_WINDOWS;_USRDLL;HORION_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ ProgramDatabase
+
+
+ MachineX86
+ true
+ Windows
+ true
+ true
+
+
+
+
+ stdcpp17
+ Level3
+ ProgramDatabase
+ true
+ false
+ MultiThreadedDebugDLL
+ /Zc:__cplusplus %(AdditionalOptions)
+ NOMINMAX;%(PreprocessorDefinitions)
+ OnlyExplicitInline
+
+
+
+ Default
+
+
+
+
+
+
+ stdcpp17
+ true
+ None
+ /Zc:__cplusplus %(AdditionalOptions)
+ AnySuitable
+ false
+ _WINDLL;NOMINMAX;%(PreprocessorDefinitions)
+
+
+ false
+
+
+
+
+ stdcpp17
+ true
+ None
+ /Zc:__cplusplus %(AdditionalOptions)
+ _BETA;NOMINMAX;%(PreprocessorDefinitions)
+ AnySuitable
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ Document
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.
+
+
+
+
+
diff --git a/Horion/Command/CommandMgr.cpp b/Horion/Command/CommandMgr.cpp
new file mode 100644
index 0000000..a96f189
--- /dev/null
+++ b/Horion/Command/CommandMgr.cpp
@@ -0,0 +1,100 @@
+#include "CommandMgr.h"
+
+CommandMgr::CommandMgr(GameData* gm) {
+ this->gameData = gm;
+}
+
+CommandMgr::~CommandMgr() {
+ for (int i = 0; i < commandList.size(); i++) {
+ delete commandList[i];
+ commandList[i] = nullptr;
+ }
+}
+
+void CommandMgr::initCommands() {
+ logF("Initializing commands");
+
+ commandList.push_back(new EjectCommand());
+ commandList.push_back(new TeleportCommand());
+ commandList.push_back(new BindCommand());
+ commandList.push_back(new RelativeTeleportCommand());
+ commandList.push_back(new ToggleCommand());
+ commandList.push_back(new PlayerTeleportCommand());
+ commandList.push_back(new GameModeCommand());
+ commandList.push_back(new FriendListCommand());
+ commandList.push_back(new UnbindCommand());
+ commandList.push_back(new EnchantCommand());
+ commandList.push_back(new HelpCommand());
+ commandList.push_back(new ModulesCommand());
+ commandList.push_back(new PanicCommand());
+ commandList.push_back(new HideCommand());
+ commandList.push_back(new GiveCommand());
+ commandList.push_back(new BruhCommand());
+ commandList.push_back(new ServerCommand());
+ commandList.push_back(new SetOffhandCommand());
+ commandList.push_back(new CoordsCommand());
+ commandList.push_back(new SayCommand());
+ commandList.push_back(new SpammerCommand());
+ commandList.push_back(new DupeCommand());
+ commandList.push_back(new DamageCommand());
+ commandList.push_back(new ConfigCommand());
+ commandList.push_back(new SetPrefixCommand());
+ commandList.push_back(new NbtCommand());
+ commandList.push_back(new WaypointCommand());
+ commandList.push_back(new TopCommand());
+ commandList.push_back(new XpCommand());
+ commandList.push_back(new CommandBlockExploitCommand());
+ commandList.push_back(new NameSpoofCommand());
+ commandList.push_back(new ExecuteCommand());
+ commandList.push_back(new ScriptCommand());
+ commandList.push_back(new PathCommand());
+
+#ifdef _DEBUG
+ commandList.push_back(new TestCommand());
+#endif
+}
+
+void CommandMgr::disable() {
+}
+
+std::vector* CommandMgr::getCommandList() {
+ return &commandList;
+}
+
+void CommandMgr::execute(char* message) {
+ if (message != nullptr) {
+ std::vector args;
+ std::string msgStr = message + 1;
+ size_t pos = msgStr.find(" "), initialPos = 0;
+ while (pos != std::string::npos) {
+ args.push_back(msgStr.substr(initialPos, pos - initialPos));
+ initialPos = pos + 1;
+
+ pos = msgStr.find(" ", initialPos);
+ }
+ args.push_back(msgStr.substr(initialPos, std::min(pos, msgStr.size()) - initialPos + 1));
+
+ std::string cmd = args[0];
+ std::transform(cmd.begin(), cmd.end(), cmd.begin(), ::tolower);
+
+ for (auto it = this->commandList.begin(); it != this->commandList.end(); ++it) {
+ IMCCommand* c = *it;
+ auto* aliases = c->getAliasList();
+ for (auto it = aliases->begin(); it != aliases->end(); ++it) {
+ if (*it == cmd) {
+ try {
+ if (!c->execute(&args))
+ g_Data.getClientInstance()->getGuiData()->displayClientMessageF("%s%sUsage: %s%c%s %s", RED, BOLD, RESET, cmdMgr->prefix, c->getCommand(), c->getUsage(cmd.c_str()));
+ } catch (...) {
+ g_Data.getClientInstance()->getGuiData()->displayClientMessageF("%s%sUsage: %s%c%s %s", RED, BOLD, RESET, cmdMgr->prefix, c->getCommand(), c->getUsage(cmd.c_str()));
+ }
+ return;
+ }
+ }
+ }
+
+ g_Data.getClientInstance()->getGuiData()->displayClientMessageF("[%sHorion%s] %sCommand '%s' could not be found!", GOLD, WHITE, RED, cmd.c_str());
+ }
+}
+
+CommandMgr* cmdMgr = new CommandMgr(&g_Data);
diff --git a/Horion/Command/CommandMgr.h b/Horion/Command/CommandMgr.h
new file mode 100644
index 0000000..cb16b2f
--- /dev/null
+++ b/Horion/Command/CommandMgr.h
@@ -0,0 +1,66 @@
+#pragma once
+
+#include "../../Memory/GameData.h"
+#include "Commands/BindCommand.h"
+#include "Commands/BruhCommand.h"
+#include "Commands/CoordsCommand.h"
+#include "Commands/DamageCommand.h"
+#include "Commands/DupeCommand.h"
+#include "Commands/EjectCommand.h"
+#include "Commands/EnchantCommand.h"
+#include "Commands/FriendListCommand.h"
+#include "Commands/GameModeCommand.h"
+#include "Commands/GiveCommand.h"
+#include "Commands/HelpCommand.h"
+#include "Commands/HideCommand.h"
+#include "Commands/ICommand.h"
+#include "Commands/ModulesCommand.h"
+#include "Commands/PanicCommand.h"
+#include "Commands/PlayerTeleportCommand.h"
+#include "Commands/RelativeTeleportCommand.h"
+#include "Commands/SayCommand.h"
+#include "Commands/ServerCommand.h"
+#include "Commands/SpammerCommand.h"
+#include "Commands/TeleportCommand.h"
+#include "Commands/ToggleCommand.h"
+#include "Commands/TopCommand.h"
+#include "Commands/UnbindCommand.h"
+#include "Commands/setoffhandCommand.h"
+#include "Commands/CommandBlockExploitCommand.h"
+#include "Commands/ConfigCommand.h"
+#include "Commands/NameSpoofCommand.h"
+#include "Commands/SetPrefixCommand.h"
+#include "Commands/NbtCommand.h"
+#include "Commands/ExecuteCommand.h"
+#include "Commands/WaypointCommand.h"
+#include"Commands/XpCommand.h"
+#include "Commands/ScriptCommand.h"
+#include "Commands/PathCommand.h"
+
+#ifdef _DEBUG
+#include "Commands/TestCommand.h"
+#endif
+
+#include
+#include
+#include
+
+class CommandMgr {
+private:
+ GameData* gameData;
+ std::vector commandList;
+
+public:
+ CommandMgr(GameData* gm);
+ ~CommandMgr();
+
+ char prefix = '.';
+
+ void initCommands();
+ void disable();
+ std::vector* getCommandList();
+
+ void execute(char* message);
+};
+
+extern CommandMgr* cmdMgr;
diff --git a/Horion/Command/Commands/BindCommand.cpp b/Horion/Command/Commands/BindCommand.cpp
new file mode 100644
index 0000000..520dc65
--- /dev/null
+++ b/Horion/Command/Commands/BindCommand.cpp
@@ -0,0 +1,79 @@
+#include "BindCommand.h"
+
+#include "../../Module/ModuleManager.h"
+
+BindCommand::BindCommand() : IMCCommand("bind", "Binds modules to specific keys", " ") {
+ registerAlias("b");
+}
+
+BindCommand::~BindCommand() {
+}
+
+bool BindCommand::execute(std::vector* args) {
+ assertTrue(args->size() >= 2);
+ std::string moduleName = args->at(1);
+ assertTrue(moduleName.size() > 0);
+
+ auto modOpt = moduleMgr->getModuleByName(moduleName);
+ if (!modOpt.has_value()) {
+ clientMessageF("%sCould not find module with name: %s", RED, moduleName.c_str());
+ return true;
+ }
+ auto mod = modOpt.value();
+
+ if (args->size() >= 3) {
+ std::string key = args->at(2);
+
+ assertTrue(key.size() > 0);
+
+ if (key.size() > 1) {
+ std::transform(key.begin(), key.end(), key.begin(), ::tolower);
+ const char* needle = key.c_str();
+
+ if (key == "none") {
+ mod->setKeybind(0x0);
+ clientMessageF("%sSuccessfully unbound %s!", GREEN, mod->getModuleName());
+ return true;
+ }
+
+ for (int i = 0; i < 190; i++) {
+ const char* haystack = KeyNames[i];
+ size_t len = strlen(needle) + 1;
+ char* haystackLowercase = new char[len];
+ for (int i = 0; i < len; i++)
+ haystackLowercase[i] = tolower(haystack[i]);
+
+ if (strcmp(needle, haystackLowercase) == 0) {
+ mod->setKeybind(i);
+ clientMessageF("%sThe keybind of %s is now '%s'", GREEN, mod->getModuleName(), haystack);
+ delete[] haystackLowercase;
+ return true;
+ }
+ delete[] haystackLowercase;
+ }
+ clientMessageF("%sInvalid key!", RED);
+ return true;
+ }
+
+ int keyCode = (int)key.at(0);
+ if (keyCode >= 0x61 && keyCode <= 0x7A) // Convert key to lower case
+ keyCode -= 0x20;
+
+ if (keyCode >= 0x30 && keyCode <= 0x5A) {
+ auto modOpt = moduleMgr->getModuleByName(moduleName);
+ if (!modOpt.has_value()) {
+ clientMessageF("%sCould not find module with name: %s", RED, moduleName.c_str());
+ } else {
+ modOpt.value()->setKeybind(keyCode);
+ clientMessageF("%sThe Keybind of %s is now '%c'", GREEN, mod->getModuleName(), keyCode);
+ }
+ } else {
+ clientMessageF("%sInvalid Key! Outside of ascii range: %X", RED, keyCode);
+ }
+ return true;
+ } else {
+ clientMessageF("%s%s is currently bound to %s", RED, mod->getModuleName(), Utils::getKeybindName(mod->getKeybind()));
+ return true;
+ }
+
+}
diff --git a/Horion/Command/Commands/BindCommand.h b/Horion/Command/Commands/BindCommand.h
new file mode 100644
index 0000000..ac18730
--- /dev/null
+++ b/Horion/Command/Commands/BindCommand.h
@@ -0,0 +1,13 @@
+#pragma once
+#include