muffin v7.38.8
This commit is contained in:
parent
5e2d8f648b
commit
3e10cbbbf2
51 changed files with 2585 additions and 1972 deletions
|
|
@ -0,0 +1,116 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Questionable.Data;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Model.Common;
|
||||
using Questionable.Model.Questing.Converter;
|
||||
|
||||
namespace Questionable.Controller.DebugCommands;
|
||||
|
||||
internal sealed class AethernetCommandHandler : IDebugCommandHandler
|
||||
{
|
||||
private readonly IDataManager _dataManager;
|
||||
|
||||
private readonly IClientState _clientState;
|
||||
|
||||
private readonly AetheryteFunctions _aetheryteFunctions;
|
||||
|
||||
private readonly IChatGui _chatGui;
|
||||
|
||||
public string CommandName => "aethernet";
|
||||
|
||||
public AethernetCommandHandler(IDataManager dataManager, IClientState clientState, AetheryteFunctions aetheryteFunctions, IChatGui chatGui)
|
||||
{
|
||||
_dataManager = dataManager;
|
||||
_clientState = clientState;
|
||||
_aetheryteFunctions = aetheryteFunctions;
|
||||
_chatGui = chatGui;
|
||||
}
|
||||
|
||||
public void Execute(string[] arguments)
|
||||
{
|
||||
ushort territoryType = _clientState.TerritoryType;
|
||||
Dictionary<EAetheryteLocation, string> values = AethernetShardConverter.Values;
|
||||
AetheryteData aetheryteData = new AetheryteData(_dataManager);
|
||||
HashSet<string> hashSet = new HashSet<string>();
|
||||
Dictionary<string, List<(EAetheryteLocation, string, bool)>> dictionary = new Dictionary<string, List<(EAetheryteLocation, string, bool)>>();
|
||||
EAetheryteLocation key;
|
||||
string value;
|
||||
foreach (KeyValuePair<EAetheryteLocation, string> item3 in values)
|
||||
{
|
||||
item3.Deconstruct(out key, out value);
|
||||
EAetheryteLocation key2 = key;
|
||||
string text = value;
|
||||
if (aetheryteData.TerritoryIds.TryGetValue(key2, out var value2) && value2 == territoryType)
|
||||
{
|
||||
int num = text.IndexOf(']', StringComparison.Ordinal);
|
||||
if (num > 0)
|
||||
{
|
||||
string item = text.Substring(1, num - 1);
|
||||
hashSet.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hashSet.Count == 0)
|
||||
{
|
||||
_chatGui.Print("No aethernet shards found in current zone.", "Questionable", 576);
|
||||
return;
|
||||
}
|
||||
foreach (KeyValuePair<EAetheryteLocation, string> item4 in values)
|
||||
{
|
||||
item4.Deconstruct(out key, out value);
|
||||
EAetheryteLocation eAetheryteLocation = key;
|
||||
string text2 = value;
|
||||
int num2 = text2.IndexOf(']', StringComparison.Ordinal);
|
||||
if (num2 <= 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
string text3 = text2.Substring(1, num2 - 1);
|
||||
if (hashSet.Contains(text3))
|
||||
{
|
||||
if (!dictionary.ContainsKey(text3))
|
||||
{
|
||||
dictionary[text3] = new List<(EAetheryteLocation, string, bool)>();
|
||||
}
|
||||
bool item2 = _aetheryteFunctions.IsAetheryteUnlocked(eAetheryteLocation);
|
||||
dictionary[text3].Add((eAetheryteLocation, text2, item2));
|
||||
}
|
||||
}
|
||||
foreach (KeyValuePair<string, List<(EAetheryteLocation, string, bool)>> item5 in dictionary.OrderBy<KeyValuePair<string, List<(EAetheryteLocation, string, bool)>>, string>((KeyValuePair<string, List<(EAetheryteLocation Location, string Name, bool Unlocked)>> x) => x.Key))
|
||||
{
|
||||
item5.Deconstruct(out value, out var value3);
|
||||
string value4 = value;
|
||||
List<(EAetheryteLocation, string, bool)> list = value3;
|
||||
List<(EAetheryteLocation, string, bool)> list2 = list.Where<(EAetheryteLocation, string, bool)>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Unlocked).ToList();
|
||||
List<(EAetheryteLocation, string, bool)> list3 = list.Where<(EAetheryteLocation, string, bool)>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => !x.Unlocked).ToList();
|
||||
_chatGui.Print($"Aethernet Shards in {value4} ({list.Count} total):", "Questionable", 576);
|
||||
_chatGui.Print($" Unlocked: {list2.Count}", "Questionable", 576);
|
||||
_chatGui.Print($" Missing: {list3.Count}", "Questionable", 576);
|
||||
_chatGui.Print("", "Questionable", 576);
|
||||
if (list3.Count > 0)
|
||||
{
|
||||
_chatGui.Print("Missing/Unattuned Aethernet Shards:", "Questionable", 576);
|
||||
foreach (var item6 in list3.OrderBy<(EAetheryteLocation, string, bool), string>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Name))
|
||||
{
|
||||
_chatGui.Print(" " + item6.Item2, "Questionable", 576);
|
||||
}
|
||||
_chatGui.Print("", "Questionable", 576);
|
||||
}
|
||||
if (list2.Count > 0)
|
||||
{
|
||||
_chatGui.Print("Unlocked Aethernet Shards:", "Questionable", 576);
|
||||
foreach (var item7 in list2.OrderBy<(EAetheryteLocation, string, bool), string>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Name))
|
||||
{
|
||||
_chatGui.Print(" " + item7.Item2, "Questionable", 576);
|
||||
}
|
||||
}
|
||||
if (dictionary.Count > 1)
|
||||
{
|
||||
_chatGui.Print("", "Questionable", 576);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue