ViragDevTool

ViragDevTool

19.4k Downloads

Any updates planned? Mind a rebuilt/renamed ~fork?

pretoasted opened this issue ยท 6 comments

commented

This was, and is, a great addon. It really helped me understand a lot of what was going on behind the scenes when I was just getting into addon development.

A while ago I remember it breaking and have had my own forked version since, with so far very little changes outside of getting it working. I feel a lot of others would benefit from this tool being continued and expanded.

I just wanted to get permission to engage in the initial steps of more or less rebuilding the addon, which would eventually end up on Curseforge after some new features on top of the re-write.

I see a few forks already exist and having it all on GitHub makes it easy for you to see, but mine, at least initially, won't be.. so I just wanted to ask directly.

If you have plans to get it updated just so its functional I could look back at my changes to let you know; otherwise I'd like to start some larger changes, starting from scratch using my approach to development, with you addon as a reference.

What you offered here was something that I'm sure saved me hours of headache and reduced debugging greatly. I just would like keep that going and hopefully help some others, while also helping myself who is still actively developing.

commented

My fork is officially live! You can snag it here, or on Curseforge and Wago.

commented

Hey, i'm not playing WoW these days, Was hoping to get beta or maybe play a little bit at the beginning of Shadowlands, but had no luck with beta key so far. I will probably make mirror updates for shadowlands, but nothing special and defiantly without new features.

Yeah, i know my code here is kinda messy, i wasn't actually planing to release it at all, and then after some requests from friends decided that who cares how code looks;p I actually started a complete rewrite back in the days but returned to hardcore raiding and just dropped the idea)

I don't have any rights for the idea of such addons;p I actually just got the idea from similar addon in Wildstar and implemented it in WoW;p,

You say, "starting from scratch using my approach to development, with you addon as a reference." So if you want to write from scratch, I think you are free to build your own version and i don't think you need my permission) You can put reference like i did in the README (the last line: Inspired by Rover addon from Wildstar), but there is definitely no need for that) And it was defiantly fun experience to implement this addon, so i would even encourage you to do it.

If you want to reuse my code, i am also fine with you forking this addon and tuning a little bit here and there. I released the addon on Curse with Creative Commons Attribution-NonCommercial 3.0 Unported, so do whatever you want, just put some attribution if you want to comply with the licence. And i don't think it is possible to monetize addons like this in any meaningful way, so you can put you version on curse and get 1 cent a day (haha;p) I don't mind that. And if you actually can make money on this, let me know, hopefully it will inspire me to write something else and use your monetization strategy;p

Anyway, I wish you all the best with you urge to help other developers.

PS Well, i ended up with a wall of text, sorry for that;p

commented

Thanks for the quick response! I wasn't expecting any issues by continuing/rebuilding it, but in case you had some plans to come back and work on it, I wasn't about to start getting involved.

Honestly I haven't even looked super close at the code yet aside from the api updates and a few ui adjustments. I'm sure it's better than 90% of the stuff out there that I've looked into while I was just getting started. Some of it is down right scary, and sadly threw me in some directions I didn't need to go.

I personally have an addon on curse with almost 40k downloads.. so far nothing yet, but I think they gave me some useless pixels that do something? who knows....

Thanks again for getting back with the details. My final plan is to rewrite it completely. I figure it would be nice to drop when it's ready for shadowlands, and in the meantime focus on a new structure for the code and design a UI mockup.

VDT has seriously has been the biggest help for me getting into addons. I'm very hands on and experimental; and it allowed me to dive right into stuff, and most of the time break it. But from breaking comes learning - so it worked out great :)

Many thanks and great work

commented

I also want to thank you for your add-on, I am basically using it whenever I'm working on add-ons. This is just a perfect tool for any developer, and as of now, I have not encountered many bugs. I have only set up some modifications to fit my needs, like auto-centering the window based on whether or not the sidebar is shown and some size adjustments.

This is the only bug I've encountered, that raised a Lua error:

    -- VALIDATION FIX if __index is function we dont want to execute it
    -- Example in ACP.L
    local mt = getmetatable(value)
    if mt and type(mt) ~= "boolean" and type(mt.__index) == "function" then return
    end

Using C_Timer.NewTicker, and ticker:Cancel(), I had to add and type(mt) ~= "boolean" to get rid of the error. Just because the error said it's attempting to index a boolean, I have not thought about it seriously.

The only thing I'm missing from this add-on, is dynamic updates, like the official table inspector. Unfornutally, looking at your code, it seems not that easy to implement, I have tried without success so far. I haven't used any of your API functions since I'm almost always using only the UI, which is pretty convenient for me. I also found it a bit annoying to always see the event in the event table, instead of the actual parameters (I have to think -1 on the argument I want). Any bad events entered in the Events tab will also trigger an error, I'm not sure if it's possible to check if the event exists though. Your code is maybe messy (from my PoV any code will be messy when it grows), but it's still a fantastic tool and I'd recommend it to anyone getting into add-on development.

Even if you decided to stop the development of it, and it gets broken, I'll just add all possible efforts to make it work again. Such debug tool is cruelly missing in WoW, yours is just the best at this time.

I'm glad to see that I'm not the only one thinking about this, I'm also interested in working on it as best I can if a fork is born.

commented

@Meivyn Sry, was busy and forgot to answer) Yeah, i'm actually surprised that there were not many errors, i actually had to fix only 2 lua errors during the last 4 years and both of them were not something groundbreaking, just 1 edge case and Api change.

I'll probably try to keep it working in current state at least)

a) looks like a solid fix with boolean)
b) yeah, i have no idea, if it is possible to check that the event exists, so error is an intended behavior in current version)
c) dynamic tables, well, yeah, it would be some headache to implement with my current custom linklist version) I think it's easier to implement a completely different module for dynamic tables)
d) -1 argument for events is an easy fix actually, ViragDevTool:SetMonitorEventScript in ViragDevToolEvents.lua, just add couple of ifs and formatting for args, basically remove the 1-s Event name from args.

The current state of events functionality is basically 80 lines of code. I have support for ignoring events without ui in my internal version, and it's extremely helpful to enable all events by default and then ignore most you don't need. And events folder needs some sort of profiles, because i sometimes need to look for all quest related events and then another time just some map events. So in current state it's kinda under-implemented, but i hadn't much use for events anyway. Usually i used it just to find the event i need and see the payload, so that's why i never actually extended the functionality. I actually have lots of code in current version of ViragDevTool:SetMonitorEventScript, like adding only events that contain QUEST, ignoring stuff, some validation and so on.

commented

@weiz if you do decide to fork, please look at my patches in my forked copy. I've ported the addon over to Ace3 (at least initially), and it's cleaned it up a good bit. And with the port to Ace3 we have lots of new features to play with in the future