I went on the LiveOverflow server it was pretty fun
parent
d6ff81fb16
commit
a2e067bf4d
|
@ -1,9 +1,6 @@
|
||||||
[submodule "build_src/quilt-mappings-on-loom"]
|
[submodule "build_src/quilt-mappings-on-loom"]
|
||||||
path = build_src/quilt-mappings-on-loom
|
path = build_src/quilt-mappings-on-loom
|
||||||
url = https://git.lavender.software/hibiscus-client/quilt-mappings-on-loom.git
|
url = https://git.lavender.software/hibiscus-client/quilt-mappings-on-loom.git
|
||||||
[submodule "build_src/fabric-loom"]
|
|
||||||
path = build_src/fabric-loom
|
|
||||||
url = https://git.lavender.software/hibiscus-client/fabric-loom.git
|
|
||||||
[submodule "vendor"]
|
[submodule "vendor"]
|
||||||
path = vendor
|
path = vendor
|
||||||
url = https://git.lavender.software/hibiscus-client/vendored-jars.git
|
url = https://git.lavender.software/hibiscus-client/vendored-jars.git
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import org.gradle.kotlin.dsl.accessors.runtime.extensionOf
|
import org.gradle.kotlin.dsl.accessors.runtime.extensionOf
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
import org.quiltmc.quiltmappings.loom.QuiltMappingsOnLoomPlugin
|
import org.quiltmc.quiltmappings.loom.QuiltMappingsOnLoomPlugin
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
|
@ -66,6 +67,7 @@ dependencies {
|
||||||
modImplementation(files("vendor/mods/iris-mc1.18.2-1.2.1-rc2-0cc372f0.jar"))
|
modImplementation(files("vendor/mods/iris-mc1.18.2-1.2.1-rc2-0cc372f0.jar"))
|
||||||
modImplementation(files("vendor/mods/sodium-fabric-mc1.18.2-0.4.1+build.15.jar"))
|
modImplementation(files("vendor/mods/sodium-fabric-mc1.18.2-0.4.1+build.15.jar"))
|
||||||
modRuntimeOnly(files("vendor/mods/lazydfu-0.1.2.jar"))
|
modRuntimeOnly(files("vendor/mods/lazydfu-0.1.2.jar"))
|
||||||
|
implementation(kotlin("stdlib-jdk8"))
|
||||||
}
|
}
|
||||||
|
|
||||||
loom {
|
loom {
|
||||||
|
@ -106,3 +108,11 @@ tasks {
|
||||||
withSourcesJar()
|
withSourcesJar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
val compileKotlin: KotlinCompile by tasks
|
||||||
|
compileKotlin.kotlinOptions {
|
||||||
|
jvmTarget = "1.8"
|
||||||
|
}
|
||||||
|
val compileTestKotlin: KotlinCompile by tasks
|
||||||
|
compileTestKotlin.kotlinOptions {
|
||||||
|
jvmTarget = "1.8"
|
||||||
|
}
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 71c28bbcd075d6d0c45dcdde71246e61ccb661e3
|
|
|
@ -5,13 +5,13 @@ org.gradle.warning.mode=all
|
||||||
minecraftVersion=1.18.2
|
minecraftVersion=1.18.2
|
||||||
quiltMappings=1.18.2+build.7
|
quiltMappings=1.18.2+build.7
|
||||||
# Fabric https://fabricmc.net/develop/
|
# Fabric https://fabricmc.net/develop/
|
||||||
loaderVersion=0.13.3
|
loaderVersion=0.14.9
|
||||||
fabricVersion=0.47.10+1.18.2
|
fabricVersion=0.58.0+1.18.2
|
||||||
loomVersion=0.10-SNAPSHOT
|
loomVersion=1.0-SNAPSHOT
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
modVersion=1.0.0
|
modVersion=1.0.0
|
||||||
mavenGroup=codes.som
|
mavenGroup=codes.som
|
||||||
archivesBaseName=hibiscus-client
|
archivesBaseName=hibiscus-client
|
||||||
# Kotlin
|
# Kotlin
|
||||||
systemProp.kotlinVersion=1.6.10
|
systemProp.kotlinVersion=1.6.10
|
||||||
fabricKotlinVersion=1.7.1+kotlin.1.6.10
|
fabricKotlinVersion=1.8.3+kotlin.1.7.10
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
includeBuild("build_src/fabric-loom")
|
|
||||||
includeBuild("build_src/quilt-mappings-on-loom")
|
includeBuild("build_src/quilt-mappings-on-loom")
|
||||||
|
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
|
|
|
@ -2,8 +2,7 @@ package codes.som.hibiscus.features
|
||||||
|
|
||||||
import codes.som.hibiscus.api.feature.Feature
|
import codes.som.hibiscus.api.feature.Feature
|
||||||
import codes.som.hibiscus.features.combat.Criticals
|
import codes.som.hibiscus.features.combat.Criticals
|
||||||
import codes.som.hibiscus.features.exploits.AntiGhost
|
import codes.som.hibiscus.features.exploits.*
|
||||||
import codes.som.hibiscus.features.exploits.Ghost
|
|
||||||
import codes.som.hibiscus.features.movement.Flight
|
import codes.som.hibiscus.features.movement.Flight
|
||||||
import codes.som.hibiscus.features.movement.Speed
|
import codes.som.hibiscus.features.movement.Speed
|
||||||
import codes.som.hibiscus.features.overlay.Overlay
|
import codes.som.hibiscus.features.overlay.Overlay
|
||||||
|
@ -33,6 +32,9 @@ fun FEATURE_CONSTRUCTORS(): Array<() -> Feature> = arrayOf(
|
||||||
::Fullbright,
|
::Fullbright,
|
||||||
::NoFog,
|
::NoFog,
|
||||||
::SpeedMine,
|
::SpeedMine,
|
||||||
|
::CivBreak,
|
||||||
|
::DropDirt,
|
||||||
|
::BotPretend,
|
||||||
)
|
)
|
||||||
|
|
||||||
class FeaturesRegistry : Resettable {
|
class FeaturesRegistry : Resettable {
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
package codes.som.hibiscus.features.exploits
|
||||||
|
|
||||||
|
import codes.som.hibiscus.api.command.Command
|
||||||
|
import codes.som.hibiscus.api.feature.Feature
|
||||||
|
import codes.som.hibiscus.api.feature.FeatureCategory
|
||||||
|
import codes.som.hibiscus.events.NetworkMovingEvent
|
||||||
|
import codes.som.hibiscus.events.PlayerPreTickEvent
|
||||||
|
import codes.som.hibiscus.events.SendPacketEvent
|
||||||
|
import codes.som.hibiscus.mc
|
||||||
|
import codes.som.hibiscus.player
|
||||||
|
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket
|
||||||
|
|
||||||
|
class BotPretend : Feature("Bot Pretend", FeatureCategory.EXPLOITS) {
|
||||||
|
init {
|
||||||
|
on<NetworkMovingEvent> { e ->
|
||||||
|
val x = ((e.x * 100).toLong()) / 100.0
|
||||||
|
val z = ((e.z * 100).toLong()) / 100.0
|
||||||
|
|
||||||
|
// TODO: Collisions?
|
||||||
|
/* for (x in arrayOf(-1, 0, 1)) {
|
||||||
|
for (z in arrayOf(-1, 0, 1)) {
|
||||||
|
|
||||||
|
if (world.getCollisions(player, player.boundingBox.offset()))
|
||||||
|
}
|
||||||
|
} */
|
||||||
|
|
||||||
|
e.x = x
|
||||||
|
e.z = z
|
||||||
|
}
|
||||||
|
|
||||||
|
on<PlayerPreTickEvent> {
|
||||||
|
// player.updatePosition(player.x.roundToLong().toDouble(), player.y, player.z.roundToLong().toDouble())
|
||||||
|
}
|
||||||
|
|
||||||
|
on<SendPacketEvent> { e ->
|
||||||
|
val packet = e.packet
|
||||||
|
if (packet is PlayerMoveC2SPacket) {
|
||||||
|
if (packet.changesPosition()) {
|
||||||
|
println("Move: ${packet.getX(player.x)}, ${packet.getZ(player.z)}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun createFeatureCommand(): Command {
|
||||||
|
return super.createFeatureCommand().apply {
|
||||||
|
branch("send", {
|
||||||
|
val x = (player.x * 10).toLong() / 10.0
|
||||||
|
val z = (player.z * 10).toLong() / 10.0
|
||||||
|
|
||||||
|
player.updatePosition(x, player.y, z)
|
||||||
|
|
||||||
|
mc.networkHandler!!.connection!!.send(
|
||||||
|
PlayerMoveC2SPacket.PositionAndOnGround(
|
||||||
|
x,
|
||||||
|
player.y,
|
||||||
|
z,
|
||||||
|
player.isOnGround
|
||||||
|
)
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
package codes.som.hibiscus.features.exploits
|
||||||
|
|
||||||
|
import codes.som.hibiscus.api.feature.Feature
|
||||||
|
import codes.som.hibiscus.api.feature.FeatureCategory
|
||||||
|
import codes.som.hibiscus.events.PlayerTickEvent
|
||||||
|
import codes.som.hibiscus.events.SendPacketEvent
|
||||||
|
import codes.som.hibiscus.player
|
||||||
|
import net.minecraft.network.Packet
|
||||||
|
import net.minecraft.network.listener.ServerPlayPacketListener
|
||||||
|
import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket
|
||||||
|
|
||||||
|
class CivBreak : Feature("Civ Break", FeatureCategory.EXPLOITS) {
|
||||||
|
private var endBreakPacket: Packet<ServerPlayPacketListener>? = null
|
||||||
|
|
||||||
|
init {
|
||||||
|
on { event: SendPacketEvent ->
|
||||||
|
val packet = event.packet
|
||||||
|
|
||||||
|
if (packet is PlayerActionC2SPacket) {
|
||||||
|
when (packet.action) {
|
||||||
|
PlayerActionC2SPacket.Action.START_DESTROY_BLOCK -> endBreakPacket = null
|
||||||
|
PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK -> endBreakPacket = packet
|
||||||
|
else -> {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
on<PlayerTickEvent> {
|
||||||
|
if (endBreakPacket != null)
|
||||||
|
player.networkHandler.sendPacket(endBreakPacket)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package codes.som.hibiscus.features.exploits
|
||||||
|
|
||||||
|
import codes.som.hibiscus.api.feature.Feature
|
||||||
|
import codes.som.hibiscus.api.feature.FeatureCategory
|
||||||
|
import codes.som.hibiscus.events.PlayerTickEvent
|
||||||
|
import codes.som.hibiscus.player
|
||||||
|
import net.minecraft.item.Items
|
||||||
|
|
||||||
|
class DropDirt : Feature("Drop Dirt", FeatureCategory.EXPLOITS) {
|
||||||
|
init {
|
||||||
|
on<PlayerTickEvent> {
|
||||||
|
if (player.age % 2 == 0)
|
||||||
|
if (player.mainHandStack?.item == Items.DIRT)
|
||||||
|
player.dropSelectedItem(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -91,7 +91,7 @@ class Flight : Feature("Flight", FeatureCategory.MOVEMENT) {
|
||||||
|
|
||||||
on(cond = { spoofAbilityPackets }) { event: SendPacketEvent ->
|
on(cond = { spoofAbilityPackets }) { event: SendPacketEvent ->
|
||||||
val (packet) = event
|
val (packet) = event
|
||||||
|
|
||||||
if (packet is UpdatePlayerAbilitiesC2SPacket) {
|
if (packet is UpdatePlayerAbilitiesC2SPacket) {
|
||||||
requireExtension<MixinExtUpdatePlayerAbilitiesC2SPacket>(packet)
|
requireExtension<MixinExtUpdatePlayerAbilitiesC2SPacket>(packet)
|
||||||
packet.setFlying(player.abilities.allowFlying)
|
packet.setFlying(player.abilities.allowFlying)
|
||||||
|
|
|
@ -48,8 +48,10 @@ object AccountsSubsystem {
|
||||||
|
|
||||||
fun deleteAccount(account: MinecraftAccount) {
|
fun deleteAccount(account: MinecraftAccount) {
|
||||||
val id = account.id.value
|
val id = account.id.value
|
||||||
accounts = accounts.filter { it.id.value == id }
|
accounts = accounts.filter { it.id.value != id }
|
||||||
account.delete()
|
Hibiscus.data.txn {
|
||||||
|
account.delete()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun reload() {
|
fun reload() {
|
||||||
|
|
Loading…
Reference in New Issue