Skip to content

Commit a4909f3

Browse files
committed
Better Flight Scaling
1 parent d9fbb0e commit a4909f3

File tree

2 files changed

+49
-8
lines changed

2 files changed

+49
-8
lines changed

src/main/java/net/wurstclient/commands/SetSliderCmd.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void call(String[] args) throws CmdException
3939
Feature feature = CmdUtils.findFeature(args[0]);
4040
Setting setting = CmdUtils.findSetting(feature, args[1]);
4141
SliderSetting slider = getAsSlider(feature, setting);
42-
setValue(args[2], slider);
42+
setValue(args[2], feature, setting, slider);
4343
}
4444

4545
private SliderSetting getAsSlider(Feature feature, Setting setting)
@@ -52,17 +52,19 @@ private SliderSetting getAsSlider(Feature feature, Setting setting)
5252
return (SliderSetting)setting;
5353
}
5454

55-
private void setValue(String value, SliderSetting slider)
56-
throws CmdSyntaxError
55+
private void setValue(String value, Feature feature, Setting setting,
56+
SliderSetting slider) throws CmdSyntaxError
5757
{
5858
switch(value.toLowerCase())
5959
{
6060
case "more":
61-
slider.increaseValue();
61+
slider.setValue(
62+
slider.getValue() + getKeybindStep(feature, setting, slider));
6263
break;
6364

6465
case "less":
65-
slider.decreaseValue();
66+
slider.setValue(
67+
slider.getValue() - getKeybindStep(feature, setting, slider));
6668
break;
6769

6870
default:
@@ -72,4 +74,18 @@ private void setValue(String value, SliderSetting slider)
7274
break;
7375
}
7476
}
77+
78+
private double getKeybindStep(Feature feature, Setting setting,
79+
SliderSetting slider)
80+
{
81+
if(feature.getName().equalsIgnoreCase("Flight"))
82+
{
83+
String name = setting.getName();
84+
if(name.equalsIgnoreCase("Horizontal Speed")
85+
|| name.equalsIgnoreCase("Vertical Speed"))
86+
return 1.0;
87+
}
88+
89+
return slider.getIncrement();
90+
}
7591
}

src/main/java/net/wurstclient/keybinds/KeybindProcessor.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,12 @@ public KeybindProcessor(HackList hax, KeybindList keybinds,
3838
@Override
3939
public void onKeyPress(KeyPressEvent event)
4040
{
41-
if(event.getAction() != GLFW.GLFW_PRESS)
41+
if(event.getAction() != GLFW.GLFW_PRESS
42+
&& event.getAction() != GLFW.GLFW_REPEAT)
4243
return;
4344

45+
boolean isRepeat = event.getAction() == GLFW.GLFW_REPEAT;
46+
4447
if(InputConstants.isKeyDown(WurstClient.MC.getWindow(),
4548
GLFW.GLFW_KEY_F3))
4649
return;
@@ -86,7 +89,7 @@ public void onKeyPress(KeyPressEvent event)
8689
if(cmds == null)
8790
return;
8891

89-
processCmds(cmds);
92+
processCmds(cmds, isRepeat);
9093
}
9194

9295
private String mapPrintableChar(int keyCode, int modifiers)
@@ -118,12 +121,34 @@ private String getKeyName(KeyPressEvent event)
118121
.getName();
119122
}
120123

121-
private void processCmds(String cmds)
124+
private void processCmds(String cmds, boolean repeatOnly)
122125
{
123126
cmds = cmds.replace(";", "\u00a7").replace("\u00a7\u00a7", ";");
124127

125128
for(String cmd : cmds.split("\u00a7"))
129+
{
130+
if(repeatOnly && !isRepeatableCommand(cmd))
131+
continue;
132+
126133
processCmd(cmd.trim());
134+
}
135+
}
136+
137+
private boolean isRepeatableCommand(String cmd)
138+
{
139+
String trimmed = cmd.trim();
140+
if(trimmed.startsWith("."))
141+
trimmed = trimmed.substring(1).trim();
142+
143+
String[] parts = trimmed.split("\\s+");
144+
if(parts.length < 4)
145+
return false;
146+
147+
if(!parts[0].equalsIgnoreCase("setslider"))
148+
return false;
149+
150+
String last = parts[parts.length - 1];
151+
return last.equalsIgnoreCase("more") || last.equalsIgnoreCase("less");
127152
}
128153

129154
private boolean isPacketDelayKeybind(String cmds)

0 commit comments

Comments
 (0)