|
1 | 1 | package ac.grim.grimac.checks.impl.scaffolding; |
2 | 2 |
|
| 3 | +import ac.grim.grimac.api.config.ConfigManager; |
3 | 4 | import ac.grim.grimac.checks.CheckData; |
4 | 5 | import ac.grim.grimac.checks.type.BlockPlaceCheck; |
5 | 6 | import ac.grim.grimac.player.GrimPlayer; |
|
24 | 25 |
|
25 | 26 | @CheckData(name = "RotationPlace") |
26 | 27 | public class RotationPlace extends BlockPlaceCheck { |
27 | | - double flagBuffer = 0; // If the player flags once, force them to play legit, or we will cancel the tick before. |
28 | | - boolean ignorePost = false; |
| 28 | + private double flagBufferMax = 1; |
| 29 | + private double flagBufferIncrement = 1; |
| 30 | + private double flagBufferDecay = 0.1; |
| 31 | + |
| 32 | + private double flagBuffer = 0; // If the player flags once, force them to play legit, or we will cancel the tick before. |
| 33 | + private boolean ignorePost = false; |
29 | 34 |
|
30 | 35 | public RotationPlace(GrimPlayer player) { |
31 | 36 | super(player); |
@@ -60,10 +65,10 @@ public void onPostFlyingBlockPlace(BlockPlace place) { |
60 | 65 | boolean hit = didRayTraceHit(place); |
61 | 66 | // This can false with rapidly moving yaw in 1.8+ clients |
62 | 67 | if (!hit) { |
63 | | - flagBuffer = 1; |
| 68 | + flagBuffer = Math.min(flagBuffer + flagBufferIncrement, flagBufferMax); |
64 | 69 | flagAndAlert("post-flying"); |
65 | 70 | } else { |
66 | | - flagBuffer = Math.max(0, flagBuffer - 0.1); |
| 71 | + flagBuffer = Math.max(0, flagBuffer - flagBufferDecay); |
67 | 72 | } |
68 | 73 | } |
69 | 74 |
|
@@ -113,4 +118,17 @@ private boolean didRayTraceHit(BlockPlace place) { |
113 | 118 |
|
114 | 119 | return false; |
115 | 120 | } |
| 121 | + |
| 122 | + @Override |
| 123 | + public void onReload(ConfigManager config) { |
| 124 | + super.onReload(config); |
| 125 | + |
| 126 | + flagBufferMax = config.getDoubleElse(getConfigName() + ".flag-buffer-max", 1); |
| 127 | + flagBufferIncrement = config.getDoubleElse(getConfigName() + ".flag-buffer-increment", 1); |
| 128 | + flagBufferDecay = config.getDoubleElse(getConfigName() + ".flag-buffer-decay", 0.1); |
| 129 | + |
| 130 | + if (flagBufferMax == -1) { |
| 131 | + flagBufferMax = Double.MAX_VALUE; |
| 132 | + } |
| 133 | + } |
116 | 134 | } |
0 commit comments