Giter Club home page Giter Club logo

somethingneeddoing's Introduction

Something Need Doing

Update as of 2024/01/26 - Croizat has expanded upon SND over at puni.sh. They're good people :)

Repo URL: https://puni.sh/api/repository/croizat

GitHub: https://github.com/Jaksuhn/SomethingNeedDoing

Update as of 2023/10/18 - Asriel has volunteered to takeover SomethingNeedDoing.

Repo URL: https://raw.githubusercontent.com/WorkingRobot/MyDalamudPlugins/main/plogon.json

GitHub: https://github.com/WorkingRobot/SomethingNeedDoing

This plugin gives you control of a little Orc peon that does things for you. Specifically, crafting. It's a better way of storing and running all your different macros.

Features

  • Folders, drag/drop re-ordering, and renaming of macros.
  • Fractional wait modifiers.
  • Looping
  • Clicking? :O
  • ...and more!

Note: Unless otherwise provided by the game or another plugin, these do not work outside the craft interface.

In-game usage

  • Type /pcraft to pull up the GUI.
  • Type /pcraft help for some help.

Lua functions

Go here.

somethingneeddoing's People

Contributors

daemitus avatar marimelon avatar slandf avatar williamw1979 avatar zbee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

somethingneeddoing's Issues

2 errors during build?

I might just be dumb. Am I supposed to build the solution, or is it already built?
I tried to build, and it came back with 2 errors and 2 warnings. I'm using 2022, for reference.

[Feature Request] Stop and clean up Macro on Completed Craft

Is it possible to detect when a craft has been completed and auto-clear the rest of the macro?

I've got a macro that works for like 90% of my items, but occasionally if the progress is a little lower then expected, I'm left with one careful synth at the end that sits in the macro queue.

Send function not working

A friend uses it fine with the same syntax but my keystate doesnt turn green and no key is processed by the game. I've tried multiple like
/send A
or even
/send CONTROL
Is there some incompatibility with something that I'm missing ?

Close click

Most addons have a close button in the top right, which would be useful to be able to click. I didn't see anything to do that, but maybe I missed it. If not, that would be nice to have.

Pushbullet notification

I have DF Assist plugin for ACT, I configured it to send a pushbullet notification when I have a duty pop - it goes via phone to my mi band watch, and this stuff is amazing, you can make some tea in peace. DFAssist also supports other notification methods.

I would like to have a similar ability to send notification for SomethingNeedDoing. The two events most noteworthy are when plugin errors/can't continue and when it completes the run or requested count of loops.

I would be happy if SND faked notification as duty notification (if at all possible, that seems like the least amount of effort), I'd expect DFAssist to pick it up, I don't care it will show it as 'Duty 0' pop, it just needs to ding for attention.

Alternative methods would be of course more proper non-fakey integration, I'd be happy with anything, discord webhook, pushbullet, anything that will let me hear the ding on my phone and/or my watch.

[Feature Request] Interrupt next loop command

In the middle of a craft, you want to finish the current craft but stop crafting after the current craft. Instead of waiting for the next loop command to come around to clear the macro queue, You can interrupt the next loop command.

Alternatively, in the macro queue, allow right click to delete command. This means we can right click the loop command at the end and it will stop looping.

endless loops never stop

i tried

/ac "Summon Carbuncle"
/loop

on SMN for testing purposes, and cannot figure out how to make it stop. neither the stop button, nor the commands /pcraft stop and /pcraft stop loop work. the only way i found was uninstalling the plugin

Wait commands persist outside of their scope

If you have a wait command (with either , /wait, or /waitaddon) and stop the macro or call another one on top of it, the wait command is still running. i.e., running /wait 500 then calling /send KEY_9, the key press will have to wait for the wait 500 to finish. Similar results if you stop then call the next one. Not sure if this is intended behavior.

[Feature Request] Add a /maxretries command

Sometimes because of lagspikes the macros fail "to receive a timely response from the server" and are paused automatically.
All you have to do is press the resume button to get the macro running again but if you're AFK you'll lose a lot of craft time.

My request would be adding a /maxretries # command that would work on a per-loop basis a bit like how /require "Well Fed" works, so if you added a /maxretries 5 for example the plugin would try resuming the craft by itself up to 5 times before pausing permanently.

Great job on the plugin btw, it's awesome :)

Conditional logic

I would love to see the addition of some basic form of conditional logic. I often start my macros with something like:

/waitaddon RecipeNote
/click Synthesize
/waitaddon Synthesis

However, there is no flawless way to do this currently. If I am already on the Synthesis menu, I will have to edit the macro to allow it to move forward. If I move the first two lines to the end of the macro, then it will begin synthesizing again even on the last loop. The ability to perform just a bit of conditional logic would solve the problem. As far as the proposed syntax goes, it would probably be best to keep it very simple. Something like...

/if param1 param2
/ifnot param1 param2
(Or not could be a parameter)

And each if would terminate with an /endif statement, which means nesting would be possible. If a macro ends with any unterminated if statements, they will be assumed to be appended to the end of the macro.

Practical example:

/ifnot addon Synthesis
/waitaddon RecipeNote
/click Synthesize
/waitaddon Synthesis
/endif

In this example, it would skip the inner 3 lines if the Synthesis menu is already active. Other if parameters could be added over time. Or perhaps you're able to come up with a more clever syntax altogether.

Alternatively, the ability to skip lines in the currently executing macro would at least allow me to bypass this issue.

using condition results in aborted macro

hey, it seems that as soon as a condition is met, for example <condition.poor>, the following /ac cant be properly executed because the skill used by the condition has no wait on it.

i tried chaining the condition with wait

/ac Observe <condition.poor> <wait.2>
/ac Observe <condition.poor wait.2>

but had no luck.

Thank you so much for your work on the plugin, its really great so far.

/loop # Seems inaccurate

Below is the macro that I have:

/click synthesize <wait.3>
/ac Reflect <wait.3>
/ac "Waste Not II" <wait.3>
/ac "Great Strides" <wait.3>
/ac Innovation <wait.3>
/ac "Preparatory Touch" <wait.3>
/ac "Delicate Synthesis" <wait.3>
/ac Groundwork <wait.3>
/ac Groundwork <wait.6>
/loop 2

The addon made four of the items instead of twice.

[Bug] Sometimes, when crafting in Garlemald, the Reflect at the start of a macro gets skipped.

Plugin version: 1.2.2.0

Issue found while doing precrafts for potions between legendary node spawns. Issue persisted after teleporting out of the zone for a round and coming back. Did not test whether it occurs in other zones, but as of approximately a day and a half ago, it did not occur in the Old Sharlayan Inn Room in over 100 crafts.

I think that it was not an issue with the plugin's detection for failed actions or lag. I think this because I tested it by extending the /waitaddon wait duration, pausing the macro during this wait, ensuring that actions were available to use, and observing that upon resuming the macro, the next step executed was Manipulation. As this occurred, both the Reflect and waitaddon lines were removed from the step queue at, as far as my eye could tell, the same time.

Macro:

/click synthesize <wait.1>
/waitaddon "Synthesis" <wait.1>
/ac Reflect <wait.3>
/ac Manipulation <wait.2>
/ac "Waste Not II" <wait.2>
/ac Innovation <wait.2>
/ac "Preparatory Touch" <wait.3>
/ac "Preparatory Touch" <wait.3>
/ac "Preparatory Touch" <wait.3>
/ac "Byregot's Blessing" <wait.3>
/ac Veneration <wait.2>
/ac Groundwork <wait.3>
/waitaddon "RecipeNote" <wait.1>
/loop <echo>

Recipe: Grade 5 Strength Alkahest
Location: Ilsabard > Garlemald > X: 31.9, Y: 34.8, Z: 0.0 (roughly where the Rime Dolomite / Stonehard Water node spawns)

Observed rate of occurrence 4 in 15. Actual rate possibly much higher or lower due to small sample size.

[Feature Request] Pause at Next Loop Button

It'd be nice if there were an additional "Pause" button that continued the macro until the next time it encountered the "/loop" command.. It's a bit frustrating that if I need to stop crafting to stand up and extract materia or repair my gear or turn in collectibles to empty out my inventory, I have to either pause exactly on the right step to prevent the next loop from starting or else finish out the macro manually.. A button that would finish out the current loop but not start the next one would be an appreciated feature if possible..

target problem

sometimes, when I switching between /target Eirikur and /target Moyce, there is a System.NullReferenceException. Once crash the game. I rewrite /target function like to the code of SimpleTweks below (just work, not very well). it working now. However, maybe just another language problem because I use it on cn server.

        private void ProcessTargetCommand(string step)
        {
            var match = TARGET_COMMAND.Match(step);
            if (!match.Success)
                throw new InvalidMacroOperationException("Syntax error");
            
            var actorName = match.Groups["name"].Value.Trim(new char[] { ' ', '"', '\'' }).ToLowerInvariant();
            if (actorName.StartsWith("<") && actorName.EndsWith(">"))
            {
                plugin.ChatManager.SendChatBoxMessage(step);
                return;
            }
            Dalamud.Game.ClientState.Actors.Types.Actor closestMatch = null;
            // var closestDistance = float.MaxValue;
            // var player = plugin.Interface.ClientState.LocalPlayer;
            try
            {
                foreach (var actor in plugin.Interface.ClientState.Actors)
                {
                    if (actor == null) continue;
                    if (actor.Name.ToLowerInvariant().Contains(actorName))
                    {
                        //var distance = Vector3.Distance(player.Position, actor.Position);
                        if (closestMatch == null)
                        {
                            closestMatch = actor;
                            //closestDistance = distance;
                            break;
                        }
                        
                    }

                }
            }
            catch (InvalidOperationException)
            {
                throw new InvalidMacroOperationException($"Unknown actor");
            }
            
            /*
            try
            {
                npc = plugin.Interface.ClientState.Actors.Where(actor => actor.Name.ToLower() == actorName).First();
            }
            catch (InvalidOperationException)
            {
                throw new InvalidMacroOperationException($"Unknown actor");
            }
            */
            if (closestMatch != null)
            {
                plugin.Interface.ClientState.Targets.SetCurrentTarget(closestMatch);
            }
            

        }

<echo> doesn't output to /echo channel

I have multiple chat windows to keep things organised, and /loop 10 echo outputs to all visible windows, including windows that do not have echo enabled in chat log settings

Macro used:

/waitaddon RecipeNote <wait.0.5-2>
/click Synthesize
/waitaddon Synthesis <wait.0.5>

/runmacro 89/80/3400/7100

/loop 65 <echo>
/echo Craft finished <se.1>

Output appears as:
image

Note the craft finished line in the lower chat window

(BUG / ERROR) "Could not parse percent HQ number in the Synthesis addon..."

I've been getting this error with higher level Culinarian crafting (level 70 to 74 stuff, class quests.. beast tribe crafting, whatever).

[SND] Could not parse percent HQ number in the Synthesis add-on: Failure while running /ac "Prudent Touch" (Step 2)

Macro being used is as follows:

/ac "Muscle Memory" <wait.3>
/ac "Prudent Touch" <wait.3>
/ac "Manipulation" <wait.2>
/ac "Careful Synthesis" <wait.3>
/ac "Prudent Touch" <wait.3>
/ac "Observe" <wait.3>
/ac "Focused Touch" <wait.3>
/ac "Observe" <wait.3>
/ac "Focused Touch" <wait.3>
/ac "Innovation" <wait.2>
/ac "Observe" <wait.3>
/ac "Focused Touch" <wait.3>
/ac "Great Strides" <wait.2>
/ac "Byregot's Blessing" <wait.3>
/ac "Careful Synthesis" <wait.3>

Yields the above error for steps "Prudent Touch", "Manipulation", "Great Strides" and one other I'm forgetting.
Steps like this stall out and won't run, meaning I've got to manually type out and execute the step (which then works fine). Unsure what is causing it.

If you need further info (versions, whatever), please let me know. Thanks!

EW Update?

I know we're still pretty early on, but I was wondering if this was planned to get updated for EW in the near future.

Also do you have a ko-fi link or some way to support your work, because its saved me a lot of frustration and its worth a couple of bucks.

[Suggestion] Make loop count equal to number of times macro should loop

Currently, Loop appears to work by running through the macro, encountering the /loop command at the end, and then repeating the macro equal to the number of times specified on the loop command.. This results in the first run through of the macro not counting towards the number of loops specified, causing the macro to attempt to run one more loop than what the actual integer on the loop counter is.. It would make more intuitive sense for the loop integer to be the number of times that the macro is run by having the loop count decrement before checking how many loops left to run so that the first run of the macro isn't skipped over when counting loops (e.g., ten loops of the macro would be specified with "/loop 10" rather than "/loop 9")..

[Feature requests] Automatic repair

Would allow for macros like

/click synthesize
/ac [crafting macro]
/loop 100
/repair
/loop

(edit: this actually wouldn't work cus you can't run a loop in the middle of a macro so that would also need to be updated)

font problem

in chinese game,the Chinese font will be display as ??.
the project add the click features recently,but i do not konw how to use it.Can you tell me how to use?

Quality skip ignore durability

I have a macro for master recipes that use veneration + 3 groundworks. If the plugin detects the quality has reached 100% before that, it simply skips over everything, including actions that would have allowed manipulation to restore some durability. This results in a failed craft

This is the macro I'm using :

/waitaddon "Synthesis" <wait.1>
/require "Well Fed" <wait.1>
/ac Reflect <wait.3>
/ac Manipulation <wait.2>
/ac Innovation <wait.2>
/ac "Basic Touch" <wait.3>
/ac "Standard Touch" <wait.3>
/ac "Advanced Touch" <wait.3>
/ac "Prudent Touch" <wait.3>
/ac Innovation <wait.2>
/ac "Prudent Touch" <wait.3>
/ac "Prudent Touch" <wait.3>
/ac Manipulation <wait.2>
/ac "Preparatory Touch" <wait.3>
/ac Innovation <wait.2>
/ac "Trained Finesse" <wait.3>
/ac "Trained Finesse" <wait.3>
/ac "Great Strides" <wait.2>
/ac "Byregot's Blessing" <wait.3>
/ac Veneration <wait.2>
/ac Groundwork <wait.3>
/ac Groundwork <wait.3>
/ac Groundwork <wait.3>
/ac "Careful Synthesis" <wait.3>
/echo Craft finished <se.2>
/waitaddon "RecipeNote" <wait.0.5>
/click synthesize <wait.2>
/loop

[Feature Request] Use HQ items when available

A command for SND that would add HQ items to the current recipe would be useful.

Potentially interesting commands:

  • /maxhq to max out all available HQ items
  • /hq X Y to fill in Y HQ items for Xth slot

When no HQ items are present by default abort or continue with an added ignore flag.

Language

Is there a Documention about the WaitAddon Commands for other languages like FR/DE

just getting the error "[SND] Addon not found: Failure while running /waitaddon "RecipeNote""

Synthesis_Quit casuses crashes, sometimes

Friend is having problems getting the macro to work, and we cannot figure out why.


/click synthesis <wait.3>
/ac "Muscle Memory" <wait.3>
/ac "Manipulation" <wait.2>
/ac "Waste not II" <wait.2>
/ac Groundwork <wait.3>
/ac Groundwork <wait.3>
/ac "Preparatory Touch" <wait.3>
/ac "Preparatory Touch" <wait.3>
/ac "Preparatory Touch" <wait.3>
/ac "Preparatory Touch" <wait.3>
/ac "Preparatory Touch" <wait.3>
/ac "Great Strides" <wait.2>
/ac "Byregot's Blessing" <wait.3>
/ac Veneration <wait.2>
/ac Groundwork <wait.7>
/loop 37 <echo>
/click synthesize <wait.3>
/click synthesis_quit <wait.5>
/send Q <wait.3>
/loop 4 <echo>
/click synthesize <wait.3>
/click synthesis_quit <wait.5>
/click repair_all <wait.2>
/click select_yes <wait.5>
/loop

For some reason, the above crashes at the synthesis_quit for my friend, but not for me.
However, I can force a crash with a macro like:

/click synthesize <wait.2>
/click synthesis_quit <wait.4>
/loop

Simply setting the delays to 2 and 4 will cause a crash on the second loop. Inverting the macro somehow makes it completely safe:

/click synthesis_quit <wait.4>
/click synthesize <wait.2>
/loop

Changing the delays to 3 and 5 also makes it safe, in either order:

/click synthesize <wait.3>
/click synthesis_quit <wait.5>
/loop

However, it is only safe for me, and not my friend. My friend has even tried delays as high as 10 on each with no success.

Some additional notes:

  • Both on Dx11
  • They've tried Windowed, Fullscreen, and Borderless Windowed
  • They uninstalled xivalexander
  • They did a clean install of the plugin
  • They removed all other plugins
  • Both using it through the dalamund quicklauncher

[BUG] Invisible Window with no click through

While and after using the plugin, there is an invisible window on the lower right section of the screen that you cannot click through. After testing all other plugins, this one seems to be the cause. In-game UI cannot be activated/clicked in the area until you restart the game.

[Suggestion] Sound effect with error messages

A notification of sorts when for example /requirestats requirement isn't met, or when a macro step doesn't receive a timely response.
Attempting to synthesize with insufficient materials could be flagged as well.

Loop functionality changed?

Did loop functionality change in a recent update? using on loop for 10 loops, stops it after the 10 crafts, with the log out put of 1 loop remaining. I dont really mind the change of making the loop number be the amount of crafts wanted but if its the case you probably wanna -1 on loops remaining for the output.

[Feature Request] looping in cli run.

Can we get a cli for looping a macro x amount of times, perhaps working by changing whatever the set loop count is for the macro being called with command by just replacing the loop number with whatever is used. Something along the lines of /pcraft run 1-80HQ <loop.##> perhaps?

Assign macro to button?

Thanks for this addon, it really fills the gaps in the macro system gooooood!

But it'd be great if the macros could be assigned to an action bar button like a normal macro. I guess the easy way to do this is to modify the /pcraft command to accept an argument of a macro name.

Plugin no longer recognises the Click Synthesize command.

Just like the header really. Mostly everything else seems to work fine, but the /click Synthesize command does not work anymore. I have even trued putting Synthesize in speech marks, but no avail. I have copied the error message that pops up.

[14:28][SND] Click not found: Failure while running /click Synthesize (step 2)

[Question] What information do I need to click buttons besides "Synthesize"?

While browsing the plugin capabilities, I was intrigued by the Click feature. Out of curiousity, I decided to see whether I could click buttons besides Synthesize such as Quick Synthesis, Begin Trial Synthesis, or Quit on the crafting window.

After exhausting the trial-and-error options that seemed most obvious to me, I turned my attention to the /xldata interface. I was able to locate the target window/button data in the "Addon Inspector" view, but wasn't able to turn up a button identifier that compares to the provided "synthesis" example. Would you mind pointing me in the right direction please?

Commands and what they do?

/pcraft help does nothing in game and I am wondering what all the extra commands do. I guess at /loop and /click and assume I know /waitaddon but whats the Recipenote?

[Feature Request] Auto-Retry on error

If your game lags on /ac commands, it will sometimes eat the command and macro will error out. It would be nice to have some way of resuming the macro automatically instead of having to come back and hit the button.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.