2019-10-27 15:45:44 +00:00
package me.rigamortis.seppuku.impl.module.movement ;
import me.rigamortis.seppuku.api.event.EventStageable ;
2021-04-27 19:06:31 +00:00
import me.rigamortis.seppuku.api.event.player.EventUpdateWalkingPlayer ;
2019-10-27 15:45:44 +00:00
import me.rigamortis.seppuku.api.module.Module ;
2021-02-21 16:54:09 +00:00
import me.rigamortis.seppuku.api.value.Value ;
2019-10-27 15:45:44 +00:00
import net.minecraft.client.Minecraft ;
import net.minecraft.client.gui.GuiChat ;
2021-04-27 19:06:31 +00:00
import net.minecraft.client.gui.GuiRepair ;
import net.minecraft.client.gui.GuiScreenBook ;
2021-02-21 16:54:09 +00:00
import net.minecraft.client.gui.inventory.GuiEditSign ;
2019-10-27 15:45:44 +00:00
import net.minecraft.client.settings.KeyBinding ;
import org.lwjgl.input.Keyboard ;
import org.lwjgl.input.Mouse ;
import team.stiff.pomelo.impl.annotated.handler.annotation.Listener ;
/ * *
2021-04-27 19:06:31 +00:00
* @author Seth
* @author noil
2019-10-27 15:45:44 +00:00
* /
public final class GuiMoveModule extends Module {
2021-10-15 03:02:32 +00:00
public final Value < Mode > mode = new Value < Mode > ( " Mode " , new String [ ] { " mod " , " m " } , " Change between modes " , Mode . NEW ) ;
public final Value < Boolean > allowSignMove = new Value < Boolean > ( " AllowSignMove " , new String [ ] { " sign " , " allowsign " , " as " } , " If enabled you will be able to move while in a sign GUI " , false ) ;
2019-10-27 15:45:44 +00:00
public GuiMoveModule ( ) {
2020-11-25 20:00:59 +00:00
super ( " GUIMove " , new String [ ] { " InvMove " , " InventoryMove " , " GUIM " } , " Allows you to move while guis are open " , " NONE " , - 1 , ModuleType . MOVEMENT ) ;
2019-10-27 15:45:44 +00:00
}
@Listener
2021-04-27 19:06:31 +00:00
public void onUpdateWalkingPlayer ( EventUpdateWalkingPlayer event ) {
if ( event . getStage ( ) = = EventStageable . EventStage . POST ) {
2019-10-27 15:45:44 +00:00
final Minecraft mc = Minecraft . getMinecraft ( ) ;
2021-04-27 19:06:31 +00:00
if ( mc . currentScreen instanceof GuiChat | | mc . currentScreen = = null | | ( ! this . allowSignMove . getValue ( ) & & ( mc . currentScreen instanceof GuiEditSign | | mc . currentScreen instanceof GuiScreenBook | | mc . currentScreen instanceof GuiRepair ) ) ) {
2019-10-27 15:45:44 +00:00
return ;
}
2021-04-27 19:06:31 +00:00
// handle mouse
if ( Mouse . isButtonDown ( 2 ) ) {
Mouse . setGrabbed ( true ) ;
mc . inGameHasFocus = true ;
} else {
Mouse . setGrabbed ( false ) ;
mc . inGameHasFocus = false ;
}
2019-10-27 15:45:44 +00:00
2021-04-27 19:06:31 +00:00
// handle movement
switch ( this . mode . getValue ( ) ) {
case NEW :
final KeyBinding [ ] keyBindings = {
mc . gameSettings . keyBindForward , mc . gameSettings . keyBindBack , mc . gameSettings . keyBindLeft , mc . gameSettings . keyBindRight ,
mc . gameSettings . keyBindJump , mc . gameSettings . keyBindSneak , mc . gameSettings . keyBindSprint } ;
for ( KeyBinding keyBinding : keyBindings ) {
KeyBinding . setKeyBindState ( keyBinding . getKeyCode ( ) , Keyboard . isKeyDown ( keyBinding . getKeyCode ( ) ) ) ;
}
break ;
case OLD :
mc . gameSettings . keyBindForward . pressed = Keyboard . isKeyDown ( mc . gameSettings . keyBindForward . getKeyCode ( ) ) ;
mc . gameSettings . keyBindBack . pressed = Keyboard . isKeyDown ( mc . gameSettings . keyBindBack . getKeyCode ( ) ) ;
mc . gameSettings . keyBindRight . pressed = Keyboard . isKeyDown ( mc . gameSettings . keyBindRight . getKeyCode ( ) ) ;
mc . gameSettings . keyBindLeft . pressed = Keyboard . isKeyDown ( mc . gameSettings . keyBindLeft . getKeyCode ( ) ) ;
mc . gameSettings . keyBindJump . pressed = Keyboard . isKeyDown ( mc . gameSettings . keyBindJump . getKeyCode ( ) ) ;
mc . gameSettings . keyBindSneak . pressed = Keyboard . isKeyDown ( mc . gameSettings . keyBindSneak . getKeyCode ( ) ) ;
mc . gameSettings . keyBindSprint . pressed = Keyboard . isKeyDown ( mc . gameSettings . keyBindSprint . getKeyCode ( ) ) ;
break ;
2019-10-27 15:45:44 +00:00
}
2021-04-27 19:06:31 +00:00
// handle y
/ * if ( Keyboard . isKeyDown ( mc . gameSettings . keyBindJump . getKeyCode ( ) ) ) {
2019-10-27 15:45:44 +00:00
if ( mc . player . isInLava ( ) | | mc . player . isInWater ( ) ) {
mc . player . motionY + = 0 . 039f ;
} else {
if ( mc . player . onGround ) {
mc . player . jump ( ) ;
}
}
2021-04-27 19:06:31 +00:00
} * /
2019-10-27 15:45:44 +00:00
}
}
2022-10-02 13:20:19 +00:00
public enum Mode {
NEW , OLD
}
2019-10-27 15:45:44 +00:00
}