Rebrand fork to Forgeimizer with Craftimizer conflict detector
User-facing rebrand of the Hellion Forge maintenance fork so it installs as a separate Dalamud plugin slot named Forgeimizer and refuses to load in parallel with upstream Craftimizer. Internal namespaces stay as Craftimizer.* — this is a deliberate light-rename so a future upstream merge stays straightforward. Manifest and build: - csproj AssemblyName = Forgeimizer (DLL is now Forgeimizer.dll) - csproj PackageProjectUrl points at the Hellion Gitea - csproj Authors dual-credits Asriel Camora and Hellion Forge - Craftimizer.json renamed to Forgeimizer.json with Name/InternalName/ Punchline/Description/RepoUrl/IconUrl/ImageUrls/Tags updated to Forgeimizer + Hellion-hosted URLs Conflict detector: - New Utils/CraftimizerConflictDetector.cs checks pluginInterface.InstalledPlugins for an active InternalName=="Craftimizer" and throws InvalidOperationException with /xlplugins guidance if found - Plugin.cs constructor calls the detector before Service.Initialize so no Dalamud state is touched on conflict Other user-facing strings: - WindowSystem name "Craftimizer" -> "Forgeimizer" - Settings about-tab header "Craftimizer" -> "Forgeimizer", hyperlink retargeted to the Hellion Gitea repo (upstream attribution stays on the WorkingRobot author line below) - Configuration.MacroMateName default "Craftimizer" -> "Forgeimizer" - /craftimizer slash command gains a /forgeimizer alias (all other upstream commands stay unchanged for muscle-memory compatibility) Docs: - README rewritten with Forgeimizer title, install section, conflict notice, slash command table, dual-holder license footer - COPYRIGHT title and source-code block updated to call out both the rebrand and the SDK 15 migration as Hellion Forge fork maintenance - NOTICE.md direct-word-to-Asriel section now also covers the rebrand scope and the conflict detector language, with explicit invitation to flag anything that does not sit right LICENSE remains unchanged — Asriel Camora's MIT notice is mandatory. Plugin Version stays at 2.9.1.1; this is a rebrand cycle, not a version bump.
This commit is contained in:
@@ -139,7 +139,7 @@ public class MacroCopyConfiguration
|
||||
public int MaxMacroCount { get; set; } = 5;
|
||||
|
||||
// CopyToMacroMate
|
||||
public string MacroMateName { get; set; } = "Craftimizer";
|
||||
public string MacroMateName { get; set; } = "Forgeimizer";
|
||||
public string MacroMateParent { get; set; } = string.Empty;
|
||||
|
||||
// Add /nextmacro [down]
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
|
||||
<PropertyGroup>
|
||||
<Authors>Asriel Camora</Authors>
|
||||
<Authors>Asriel Camora (original); Jon Kazama / Hellion Forge (fork)</Authors>
|
||||
<Version>2.9.1.1</Version>
|
||||
<PackageProjectUrl>https://github.com/WorkingRobot/Craftimizer.git</PackageProjectUrl>
|
||||
<AssemblyName>Forgeimizer</AssemblyName>
|
||||
<PackageProjectUrl>https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer</PackageProjectUrl>
|
||||
<Configurations>Debug;Release</Configurations>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"Author": "Asriel",
|
||||
"Name": "Craftimizer",
|
||||
"Punchline": "Simulate crafts, create computer-assisted macros, and get mid-craft suggestions from the comfort of your own game!",
|
||||
"Description": "Allows you to generate macros and simulate all sorts of crafts without having to open another app. Open your crafting log to get started!",
|
||||
"RepoUrl": "https://github.com/WorkingRobot/Craftimizer",
|
||||
"InternalName": "Craftimizer",
|
||||
"ApplicableVersion": "any",
|
||||
"Tags": [
|
||||
"crafting",
|
||||
"doh",
|
||||
"craft",
|
||||
"macro",
|
||||
"solver",
|
||||
"generator",
|
||||
"generate",
|
||||
"simulate",
|
||||
"sim",
|
||||
"simulator"
|
||||
],
|
||||
"CategoryTags": [
|
||||
"Jobs"
|
||||
],
|
||||
"IconUrl": "https://git.camora.dev/asriel/Craftimizer/raw/branch/main/icon.png",
|
||||
"ImageUrls": [
|
||||
"https://git.camora.dev/asriel/Craftimizer/raw/branch/main/Images/RecipeNote.png",
|
||||
"https://git.camora.dev/asriel/Craftimizer/raw/branch/main/Images/SynthHelper.png",
|
||||
"https://git.camora.dev/asriel/Craftimizer/raw/branch/main/Images/MacroEditor.png"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"Author": "Asriel Camora (original); Jon Kazama / Hellion Forge (fork)",
|
||||
"Name": "Forgeimizer",
|
||||
"Punchline": "A Hellion Forge plugin. Crafting simulator and macro solver for FFXIV, maintenance fork of Asriel Camora's Craftimizer kept current for Dalamud API 15+.",
|
||||
"Description": "A Hellion Forge plugin — a maintenance fork of Craftimizer by Asriel Camora, brought back to life on Dalamud SDK 15 for FFXIV 7.5+.\n\nSimulate crafts, create computer-assisted macros, and get mid-craft suggestions from the comfort of your own game. Open your crafting log to get started.\n\nAll features below come from upstream Craftimizer, unchanged in this fork:\n- Crafting simulator with full action state tracking\n- Macro solver (Raphael Rust crate, bundled)\n- Recipe note overlay\n- Synthesis helper window\n- Macro editor and macro list\n\nThis fork:\n- Refuses to load if upstream Craftimizer is active (no parallel hooks)\n- No features added, no design changes vs upstream\n- Will archive if Asriel ships an official SDK 15 update upstream\n\nSource: https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer",
|
||||
"RepoUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer",
|
||||
"InternalName": "Forgeimizer",
|
||||
"ApplicableVersion": "any",
|
||||
"Tags": [
|
||||
"crafting",
|
||||
"doh",
|
||||
"craft",
|
||||
"macro",
|
||||
"solver",
|
||||
"generator",
|
||||
"generate",
|
||||
"simulate",
|
||||
"sim",
|
||||
"simulator",
|
||||
"hellion",
|
||||
"forge"
|
||||
],
|
||||
"CategoryTags": [
|
||||
"Jobs"
|
||||
],
|
||||
"IconUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/raw/branch/main/icon.png",
|
||||
"ImageUrls": [
|
||||
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/raw/branch/main/Images/RecipeNote.png",
|
||||
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/raw/branch/main/Images/SynthHelper.png",
|
||||
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/raw/branch/main/Images/MacroEditor.png"
|
||||
]
|
||||
}
|
||||
@@ -37,9 +37,11 @@ public sealed class Plugin : IDalamudPlugin
|
||||
|
||||
public Plugin(IDalamudPluginInterface pluginInterface)
|
||||
{
|
||||
CraftimizerConflictDetector.ThrowIfUpstreamLoaded(pluginInterface);
|
||||
|
||||
Service.Initialize(this, pluginInterface);
|
||||
|
||||
WindowSystem = new("Craftimizer");
|
||||
WindowSystem = new("Forgeimizer");
|
||||
Configuration = Configuration.Load();
|
||||
IconManager = new();
|
||||
Hooks = new();
|
||||
@@ -120,7 +122,7 @@ public sealed class Plugin : IDalamudPlugin
|
||||
public void ExecuteRetrySynthHelper() =>
|
||||
SynthHelperWindow.AttemptRetry();
|
||||
|
||||
[Command(name: "/craftimizer", description: "Open the settings window.")]
|
||||
[Command(name: "/craftimizer", aliases: "/forgeimizer", description: "Open the settings window.")]
|
||||
private void OpenSettingsWindowForced() =>
|
||||
OpenSettingsWindow(true);
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
using System.Linq;
|
||||
using Dalamud.Plugin;
|
||||
|
||||
namespace Craftimizer.Utils;
|
||||
|
||||
internal static class CraftimizerConflictDetector
|
||||
{
|
||||
private const string UpstreamInternalName = "Craftimizer";
|
||||
|
||||
public static void ThrowIfUpstreamLoaded(IDalamudPluginInterface pluginInterface)
|
||||
{
|
||||
var conflict = pluginInterface.InstalledPlugins.FirstOrDefault(p =>
|
||||
p.InternalName == UpstreamInternalName && p.IsLoaded
|
||||
);
|
||||
|
||||
if (conflict is null)
|
||||
return;
|
||||
|
||||
throw new System.InvalidOperationException(
|
||||
"Forgeimizer cannot load while the upstream Craftimizer plugin is active.\n\n"
|
||||
+ "Both plugins register the same Dalamud hooks (UseAction, IsActionHighlighted) "
|
||||
+ "and would conflict if loaded together.\n\n"
|
||||
+ "Action: open /xlplugins, disable the upstream 'Craftimizer' plugin, "
|
||||
+ "then re-enable Forgeimizer."
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1113,8 +1113,8 @@ public sealed class Settings : Window, IDisposable
|
||||
|
||||
using (HeaderFont.Push())
|
||||
{
|
||||
ImGuiUtils.AlignCentered(ImGui.CalcTextSize("Craftimizer").X);
|
||||
ImGuiUtils.Hyperlink("Craftimizer", "https://github.com/WorkingRobot/Craftimizer", false);
|
||||
ImGuiUtils.AlignCentered(ImGui.CalcTextSize("Forgeimizer").X);
|
||||
ImGuiUtils.Hyperlink("Forgeimizer", "https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer", false);
|
||||
}
|
||||
|
||||
using (SubheaderFont.Push())
|
||||
|
||||
Reference in New Issue
Block a user