1
0
Fork 0
forked from aly/qstbak

muffin v7.5.6

This commit is contained in:
alydev 2026-08-17 20:27:25 +10:00
parent 6266f9e6b7
commit addf2d530f
619 changed files with 264792 additions and 446022 deletions

View file

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Plugin.Services;
@ -21,19 +22,39 @@ internal static class Dive
{
public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step)
{
if (step.InteractionType != EInteractionType.Dive)
int num = ((_206D_206E_202A_206D_200D_206F_206D_200C_206E_200E_206C_200C_200E_206F_206C_200B_202C_206C_202C_206B_200C_200B_200C_202C_206E_202D_200F_202B_202D_200F_202D_200D_206F_202A_206A_202B_202A_202B_206F_206C_202E(step) == EInteractionType.Dive) ? 912485956 : 912485959);
while (true)
{
return null;
int num2 = num;
int num3 = 912485958;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
return new Task();
case 1:
return null;
case 0:
goto IL_0050;
}
continue;
IL_0050:
num = 912485959;
}
return new Task();
}
static EInteractionType _206D_206E_202A_206D_200D_206F_206D_200C_206E_200E_206C_200C_200E_206F_206C_200B_202C_206C_202C_206B_200C_200B_200C_202C_206E_202D_200F_202B_202D_200F_202D_200D_206F_202A_206A_202B_202A_202B_206F_206C_202E(QuestStep P_0)
{
return P_0.InteractionType;
}
}
internal sealed class Task : ITask
{
[MethodImpl(MethodImplOptions.NoInlining)]
public override string ToString()
{
return "Dive";
return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(377000525);
}
}
@ -45,141 +66,380 @@ internal static class Dive
private int _attempts;
[MethodImpl(MethodImplOptions.NoInlining)]
protected override bool StartInternal()
{
if (condition[ConditionFlag.Diving])
int num = ((!_200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(condition, ConditionFlag.Diving)) ? (-182833903) : (-182833899));
while (true)
{
return false;
int num2 = num;
int num3 = -182833900;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
num = ((!_200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(condition, ConditionFlag.Swimming)) ? (-182833904) : (-182833900));
break;
case 5:
num = (_200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(condition, ConditionFlag.Mounted) ? (-182833900) : (-182833898));
break;
case 0:
Descend();
return true;
case 3:
num = -182833899;
break;
case 4:
throw new TaskException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-335869589));
case 1:
return false;
}
}
if (condition[ConditionFlag.Mounted] || condition[ConditionFlag.Swimming])
{
Descend();
return true;
}
throw new TaskException("You aren't swimming, so we can't dive.");
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe override ETaskResult Update()
{
if (_keysToPress.TryDequeue(out (uint, nint) result))
(uint, nint) result;
int num = ((!_keysToPress.TryDequeue(out result)) ? 297362200 : 297362206);
while (true)
{
if (result.Item1 == 0)
int num2 = num;
int num3 = 297362202;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 6:
return ETaskResult.StillRunning;
case 4:
num = ((result.Item1 != 0) ? 297362201 : 297362204);
break;
case 3:
_200E_202C_206B_200B_202B_206C_206C_202C_202C_206B_206E_206F_202D_200F_200E_200D_200B_202A_202C_206B_200B_202E_200D_202D_206F_206C_200F_200E_206A_200F_202A_202C_206F_200E_206B_202C_206C_202C_206E_200E_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(547752152), new object[2]
{
(result.Item1 == 256) ? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-211975877) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(378157279),
result.Item2
});
WindowsKeypress.SendMessage((nint)Device.Instance()->hWnd, result.Item1, result.Item2);
num = ((result.Item1 != 256) ? 297362202 : 297362203);
break;
case 8:
num = 297362206;
break;
case 5:
_pressedKeys.Remove(result.Item2);
num = 297362205;
break;
case 2:
return base.Update();
case 1:
_pressedKeys.Add(result.Item2);
num = 297362205;
break;
case 0:
num = ((result.Item1 != 257) ? 297362205 : 297362207);
break;
case 7:
return ETaskResult.StillRunning;
}
logger.LogDebug("{Action} key {KeyCode:X2}", (result.Item1 == 256) ? "Pressing" : "Releasing", result.Item2);
WindowsKeypress.SendMessage((nint)Device.Instance()->hWnd, result.Item1, result.Item2);
if (result.Item1 == 256)
{
_pressedKeys.Add(result.Item2);
}
else if (result.Item1 == 257)
{
_pressedKeys.Remove(result.Item2);
}
return ETaskResult.StillRunning;
}
return base.Update();
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe void StopNow()
{
foreach (nint pressedKey in _pressedKeys)
using (HashSet<nint>.Enumerator enumerator = _pressedKeys.GetEnumerator())
{
logger.LogDebug("Releasing stuck key {KeyCode:X2} on stop", pressedKey);
WindowsKeypress.SendMessage((nint)Device.Instance()->hWnd, 257u, pressedKey);
int num = 169668245;
while (true)
{
int num2 = num;
int num3 = 169668244;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 169668245;
break;
case 1:
num = (enumerator.MoveNext() ? 169668246 : 169668247);
break;
case 2:
{
nint current = enumerator.Current;
_200E_202C_206B_200B_202B_206C_206C_202C_202C_206B_206E_206F_202D_200F_200E_200D_200B_202A_202C_206B_200B_202E_200D_202D_206F_206C_200F_200E_206A_200F_202A_202C_206F_200E_206B_202C_206C_202C_206E_200E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(331258283), new object[1] { current });
WindowsKeypress.SendMessage((nint)Device.Instance()->hWnd, 257u, current);
num = 169668245;
break;
}
case 3:
goto end_IL_0017;
}
continue;
end_IL_0017:
break;
}
}
_pressedKeys.Clear();
_keysToPress.Clear();
}
void IStoppableTaskExecutor.StopNow()
{
//ILSpy generated this explicit interface implementation from .override directive in StopNow
this.StopNow();
}
public override bool ShouldInterruptOnDamage()
{
return false;
}
[MethodImpl(MethodImplOptions.NoInlining)]
protected override ETaskResult UpdateInternal()
{
if (condition[ConditionFlag.Diving])
int num = ((!_200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(condition, ConditionFlag.Diving)) ? 1669924537 : 1669924536);
while (true)
{
return ETaskResult.TaskComplete;
int num2 = num;
int num3 = 1669924537;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = ((_attempts < 5) ? 1669924538 : 1669924541);
break;
case 1:
return ETaskResult.TaskComplete;
case 3:
{
Descend();
int attempts = _attempts;
num3 = 1;
num4 = attempts;
_attempts = (num4 | num3) + (num4 & num3);
return ETaskResult.StillRunning;
}
case 4:
throw new TaskException(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1475958254));
case 2:
num = 1669924536;
break;
}
}
if (_attempts >= 5)
{
throw new TaskException("Please dive manually.");
}
Descend();
_attempts++;
return ETaskResult.StillRunning;
}
[MethodImpl(MethodImplOptions.NoInlining)]
private unsafe void Descend()
{
Keybind* keybind = UIInputData.Instance()->GetKeybind(InputId.MOVE_DESCENT);
if (keybind == null)
{
throw new TaskException("Could not find descent keybind");
throw new TaskException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(472640545));
}
Span<KeySetting> keySettings = keybind->KeySettings;
SeVirtualKey key = keySettings[0].Key;
KeyModifierFlag keyModifier = keySettings[0].KeyModifier;
SeVirtualKey key2 = keySettings[1].Key;
KeyModifierFlag keyModifier2 = keySettings[1].KeyModifier;
logger.LogInformation("Dive keybind: {Key1} + {Modifier1}, {Key2} + {Modifier2}", key, keyModifier, key2, keyModifier2);
_200E_202C_206B_200B_202B_206C_206C_202C_202C_206B_206E_206F_202D_200F_200E_200D_200B_202A_202C_206B_200B_202E_200D_202D_206F_206C_200F_200E_206A_200F_202A_202C_206F_200E_206B_202C_206C_202C_206E_200E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1313145476), new object[4] { key, keyModifier, key2, keyModifier2 });
int num = 2;
List<List<nint>> list = new List<List<nint>>(num);
CollectionsMarshal.SetCount(list, num);
Span<List<nint>> span = CollectionsMarshal.AsSpan(list);
span[0] = GetKeysToPress(key, keyModifier);
span[1] = GetKeysToPress(key2, keyModifier2);
List<nint> list2 = (from x in list
where x != null
select (x)).MinBy((List<nint> x) => x.Count);
if (list2 == null || list2.Count == 0)
List<nint> list2 = list.OfType<List<nint>>().MinBy((List<nint> x) => x.Count);
int num2 = ((list2 == null) ? 326698319 : 326698316);
int num12 = default(int);
while (true)
{
throw new TaskException("No useable keybind found for diving");
}
foreach (nint item in list2)
{
_keysToPress.Enqueue((256u, item));
for (int num2 = 0; num2 < 15; num2++)
int num3 = num2;
int num4 = 326698319;
int num5 = num3;
int num6 = num5 + num4;
int num7 = num5 & num4;
switch (num6 - (num7 + num7))
{
_keysToPress.Enqueue((0u, 0));
case 2:
num2 = 326698316;
break;
case 3:
num2 = ((list2.Count != 0) ? 326698318 : 326698319);
break;
case 0:
throw new TaskException(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-81108494));
case 1:
{
using (List<nint>.Enumerator enumerator = list2.GetEnumerator())
{
num2 = 1722000690;
while (true)
{
int num8 = num2;
num4 = 1722000690;
num5 = num8;
int num9 = num5 + num4;
int num10 = num5 & num4;
switch (num9 - (num10 + num10))
{
case 2:
num2 = 1722000690;
break;
case 3:
{
nint current = enumerator.Current;
_keysToPress.Enqueue((256u, current));
num12 = 0;
num2 = 1722000695;
break;
}
case 4:
{
_keysToPress.Enqueue((0u, 0));
int num11 = num12;
num4 = 1;
num5 = num11;
int num13 = num5 ^ num4;
int num14 = num5 & num4;
num12 = num13 + (num14 + num14);
num2 = 1722000695;
break;
}
case 5:
num2 = ((num12 < 15) ? 1722000694 : 1722000690);
break;
case 0:
num2 = (enumerator.MoveNext() ? 1722000689 : 1722000691);
break;
case 1:
goto end_IL_01b5;
}
continue;
end_IL_01b5:
break;
}
}
int num15 = 0;
num2 = 624642844;
while (true)
{
int num16 = num2;
num4 = 624642847;
num5 = num16;
switch ((num5 | num4) - (num5 & num4))
{
case 0:
num2 = 624642844;
break;
case 3:
num2 = ((num15 < 5) ? 624642846 : 624642845);
break;
case 1:
{
_keysToPress.Enqueue((0u, 0));
int num20 = num15;
num4 = 1;
num5 = num20;
num15 = (num5 | num4) + (num5 & num4);
num2 = 624642844;
break;
}
case 2:
{
list2.Reverse();
using List<nint>.Enumerator enumerator = list2.GetEnumerator();
num2 = 2090140458;
while (true)
{
int num17 = num2;
num4 = 2090140458;
num5 = num17;
int num18 = num5 + num4;
int num19 = num5 & num4;
switch (num18 - (num19 + num19))
{
case 2:
num2 = 2090140458;
break;
case 1:
{
nint current2 = enumerator.Current;
_keysToPress.Enqueue((257u, current2));
num2 = 2090140458;
break;
}
case 0:
num2 = (enumerator.MoveNext() ? 2090140459 : 2090140457);
break;
case 3:
return;
}
}
}
}
}
}
}
}
for (int num3 = 0; num3 < 5; num3++)
{
_keysToPress.Enqueue((0u, 0));
}
list2.Reverse();
foreach (nint item2 in list2)
{
_keysToPress.Enqueue((257u, item2));
}
}
static bool _200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(ICondition P_0, ConditionFlag P_1)
{
return P_0[P_1];
}
static void _200E_202C_206B_200B_202B_206C_206C_202C_202C_206B_206E_206F_202D_200F_200E_200D_200B_202A_202C_206B_200B_202E_200D_202D_206F_206C_200F_200E_206A_200F_202A_202C_206F_200E_206B_202C_206C_202C_206E_200E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
}
private static List<nint>? GetKeysToPress(SeVirtualKey key, KeyModifierFlag modifier)
{
List<nint> list = new List<nint>();
if ((modifier & KeyModifierFlag.Ctrl) != KeyModifierFlag.None)
int num = (((modifier & KeyModifierFlag.Ctrl) == 0) ? 1227229785 : 1227229790);
nint num7 = default(nint);
while (true)
{
list.Add(17);
int num2 = num;
int num3 = 1227229786;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
return null;
case 3:
num = (((modifier & KeyModifierFlag.Shift) == 0) ? 1227229789 : 1227229787);
break;
case 4:
list.Add(17);
num = 1227229785;
break;
case 5:
list.Add(num7);
return list;
case 1:
list.Add(16);
num = 1227229789;
break;
case 7:
num = (((modifier & KeyModifierFlag.Alt) == 0) ? 1227229788 : 1227229786);
break;
case 6:
num7 = (nint)key;
num = ((num7 != 0) ? 1227229791 : 1227229784);
break;
case 8:
num = 1227229790;
break;
case 0:
list.Add(18);
num = 1227229788;
break;
}
}
if ((modifier & KeyModifierFlag.Shift) != KeyModifierFlag.None)
{
list.Add(16);
}
if ((modifier & KeyModifierFlag.Alt) != KeyModifierFlag.None)
{
list.Add(18);
}
nint num = (nint)key;
if (num == 0)
{
return null;
}
list.Add(num);
return list;
}
}