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"]
|
||||
path = build_src/quilt-mappings-on-loom
|
||||
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"]
|
||||
path = vendor
|
||||
url = https://git.lavender.software/hibiscus-client/vendored-jars.git
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import org.gradle.kotlin.dsl.accessors.runtime.extensionOf
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
import org.quiltmc.quiltmappings.loom.QuiltMappingsOnLoomPlugin
|
||||
|
||||
plugins {
|
||||
|
@ -66,6 +67,7 @@ dependencies {
|
|||
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"))
|
||||
modRuntimeOnly(files("vendor/mods/lazydfu-0.1.2.jar"))
|
||||
implementation(kotlin("stdlib-jdk8"))
|
||||
}
|
||||
|
||||
loom {
|
||||
|
@ -106,3 +108,11 @@ tasks {
|
|||
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
|
||||
quiltMappings=1.18.2+build.7
|
||||
# Fabric https://fabricmc.net/develop/
|
||||
loaderVersion=0.13.3
|
||||
fabricVersion=0.47.10+1.18.2
|
||||
loomVersion=0.10-SNAPSHOT
|
||||
loaderVersion=0.14.9
|
||||
fabricVersion=0.58.0+1.18.2
|
||||
loomVersion=1.0-SNAPSHOT
|
||||
# Mod Properties
|
||||
modVersion=1.0.0
|
||||
mavenGroup=codes.som
|
||||
archivesBaseName=hibiscus-client
|
||||
# Kotlin
|
||||
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")
|
||||
|
||||
pluginManagement {
|
||||
|
|
|
@ -2,8 +2,7 @@ package codes.som.hibiscus.features
|
|||
|
||||
import codes.som.hibiscus.api.feature.Feature
|
||||
import codes.som.hibiscus.features.combat.Criticals
|
||||
import codes.som.hibiscus.features.exploits.AntiGhost
|
||||
import codes.som.hibiscus.features.exploits.Ghost
|
||||
import codes.som.hibiscus.features.exploits.*
|
||||
import codes.som.hibiscus.features.movement.Flight
|
||||
import codes.som.hibiscus.features.movement.Speed
|
||||
import codes.som.hibiscus.features.overlay.Overlay
|
||||
|
@ -33,6 +32,9 @@ fun FEATURE_CONSTRUCTORS(): Array<() -> Feature> = arrayOf(
|
|||
::Fullbright,
|
||||
::NoFog,
|
||||
::SpeedMine,
|
||||
::CivBreak,
|
||||
::DropDirt,
|
||||
::BotPretend,
|
||||
)
|
||||
|
||||
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 ->
|
||||
val (packet) = event
|
||||
|
||||
|
||||
if (packet is UpdatePlayerAbilitiesC2SPacket) {
|
||||
requireExtension<MixinExtUpdatePlayerAbilitiesC2SPacket>(packet)
|
||||
packet.setFlying(player.abilities.allowFlying)
|
||||
|
|
|
@ -48,8 +48,10 @@ object AccountsSubsystem {
|
|||
|
||||
fun deleteAccount(account: MinecraftAccount) {
|
||||
val id = account.id.value
|
||||
accounts = accounts.filter { it.id.value == id }
|
||||
account.delete()
|
||||
accounts = accounts.filter { it.id.value != id }
|
||||
Hibiscus.data.txn {
|
||||
account.delete()
|
||||
}
|
||||
}
|
||||
|
||||
fun reload() {
|
||||
|
|
Loading…
Reference in New Issue