We have detected that cookies are not enabled on your browser. Please enable cookies to ensure the proper experience.
Results 1 to 22 of 22
  1. #1

    Sortpack broke with this update

    I LOVE sortpack.... in my opinion it has been the ultimate bag/inventory plugin. It is considered outdated and no longer supported though. Have any of you LUA gurus either fixed it or is there a similar replacement? LOTRO devs - I would happily pay 1000 points to have this wonderful feature properly fixed and supported!

  2. #2
    Join Date
    Jun 2011
    Posts
    1,293
    You're going to need this.
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  3. #3
    Join Date
    Apr 2015
    Location
    Wisconsin, USA
    Posts
    235
    Thank you Denalynne for bringing this plugin to my attention. I'd like to use it.

    However,
    Quote Originally Posted by Thurallor View Post
    You're going to need this.
    I extracted the file to "Documents/The Lord of the Rings Online/Plugins/Turbine/UI". But, after I applied this patch, I am getting a continually scrolling message in the chatbox: "Patching ListBox control to repair SSG's Update 21.2 damage." Ideas?
    ~~ If it hurts, it means you're still alive so you can stop whining. Now. ~~

  4. #4
    Join Date
    Jun 2011
    Posts
    1,293
    Quote Originally Posted by Earthsuit View Post
    Thank you Denalynne for bringing this plugin to my attention. I'd like to use it.

    However,


    I extracted the file to "Documents/The Lord of the Rings Online/Plugins/Turbine/UI". But, after I applied this patch, I am getting a continually scrolling message in the chatbox: "Patching ListBox control to repair SSG's Update 21.2 damage." Ideas?
    You should see it once for every plugin that loads, but it shouldn't occur after that unless you unload and reload a plugin. Can you be more specific about what you mean by "continually"?

    BTW you can remove the message altogether by simply deleting the first line of the __init__.lua file.
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  5. #5

    Thank you!!!!!

    THANK YOU 10,000 times THANK YOU!

  6. #6
    Join Date
    Apr 2015
    Location
    Wisconsin, USA
    Posts
    235
    Quote Originally Posted by Thurallor View Post
    You should see it once for every plugin that loads, but it shouldn't occur after that unless you unload and reload a plugin. Can you be more specific about what you mean by "continually"?

    BTW you can remove the message altogether by simply deleting the first line of the __init__.lua file.
    Thanks for the answer.

    Even after all plugins should have finished loading, the phrase repeats over and over. If someone says something in chat, you can watch it continue to scroll, or I should say 'repost to chat', until the chat conversation is pushed out of the way. I'm trying to think if any of my plugins would automatically load and unload themselves, but cannot. Is doubtful, but would Garan's "Alerter" do this since it monitors chat?
    ~~ If it hurts, it means you're still alive so you can stop whining. Now. ~~

  7. #7
    Join Date
    Jun 2011
    Posts
    1,293
    Quote Originally Posted by Earthsuit View Post
    Thanks for the answer.

    Even after all plugins should have finished loading, the phrase repeats over and over. If someone says something in chat, you can watch it continue to scroll, or I should say 'repost to chat', until the chat conversation is pushed out of the way. I'm trying to think if any of my plugins would automatically load and unload themselves, but cannot. Is doubtful, but would Garan's "Alerter" do this since it monitors chat?
    Garan has been known to do tricky things like loading and unloading "sub plugins" on-the-fly. I doubt he's doing it every time an alert is generated, though. I'll page him, maybe he can comment.

    If you PM me a list of the plugins you're using, I'll try to figure out what's going on. You've piqued my curiosity.
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  8. #8
    Join Date
    Apr 2015
    Location
    Wisconsin, USA
    Posts
    235
    Quote Originally Posted by Thurallor View Post
    If you PM me a list of the plugins you're using, I'll try to figure out what's going on. You've piqued my curiosity.
    Cool. Thanks.
    ~~ If it hurts, it means you're still alive so you can stop whining. Now. ~~

  9. #9
    Join Date
    Mar 2007
    Posts
    1,436
    Alerter doesn't contain any loader/reloader functionality so it shouldn't be a problem. MoorMap and TerrainMap could theoretically do this during their search routines (which isn't automatic on startup) or TerrainMap's annotation loading (which is automatic but shouldn't involve any listboxes unless something else is amiss). It may be a conflict with AltInventory, but if that were the case I would expect an error message and/or plugin failure to load, however I suspect it would work just fine with the patch. I don't have that patch running currently so I don't know how it would affect other plugins but I can look into it further.

    A list of plugins in use would definitely be helpful. I would tend to suspect a "manager" plugin like Bootstrap of having such an issue, especially what looks like either an infinite loop or infinite recursion caused by loading a plugin. The next step would be to disable all automatic loading of plugins, restart the client, login a character and manually load each plugin one at a time and see if loading one specific plugin triggers it. If not, then it could be a race condition on log-in or a combination of plugins loading in a specific order, both of which would be difficult to debug, so let's hope it's just one plugin with an unexpected failure.

  10. #10
    Join Date
    Jun 2011
    Posts
    1,293
    Quote Originally Posted by Garan View Post
    Alerter doesn't contain any loader/reloader functionality so it shouldn't be a problem. MoorMap and TerrainMap could theoretically do this during their search routines (which isn't automatic on startup) or TerrainMap's annotation loading (which is automatic but shouldn't involve any listboxes unless something else is amiss). It may be a conflict with AltInventory, but if that were the case I would expect an error message and/or plugin failure to load, however I suspect it would work just fine with the patch. I don't have that patch running currently so I don't know how it would affect other plugins but I can look into it further.

    A list of plugins in use would definitely be helpful. I would tend to suspect a "manager" plugin like Bootstrap of having such an issue, especially what looks like either an infinite loop or infinite recursion caused by loading a plugin. The next step would be to disable all automatic loading of plugins, restart the client, login a character and manually load each plugin one at a time and see if loading one specific plugin triggers it. If not, then it could be a race condition on log-in or a combination of plugins loading in a specific order, both of which would be difficult to debug, so let's hope it's just one plugin with an unexpected failure.
    I was trying to modify the patch to display "which plugin am I", but that information doesn't seem to be available at the time it's being imported. There's no global "plugin" object, and "Turbine.Plugin:GetName()" is invalid. Any ideas?
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  11. #11
    Join Date
    Jun 2011
    Posts
    1,293
    Quote Originally Posted by Earthsuit View Post
    Cool. Thanks.
    I tried loading all of the plugins you're using, and I don't see the problem. So it must have something to do with your settings for those plugins.

    I guess the best way to isolate which plugin is causing the problem would be a "binary search" strategy. I.e. disable half of your plugins, see if the problem persists. If so, disable half of the remaining ones, and so on.

    If/when you do isolate it to a particular plugin, I would like to know which one.
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  12. #12
    Join Date
    Mar 2007
    Posts
    1,436
    Quote Originally Posted by Thurallor View Post
    I was trying to modify the patch to display "which plugin am I", but that information doesn't seem to be available at the time it's being imported. There's no global "plugin" object, and "Turbine.Plugin:GetName()" is invalid. Any ideas?
    I modified the WriteLine in your __init__.lua in Turbine/UI to:
    Code:
    Turbine.Shell.WriteLine("Plugin:"..plugin:GetName())
    and it seems to display the loading plugin's name correctly (assuming the plugin imports "Turbine.UI" ). Note, this won't work if the call is made after the plugin is initialized, so you should test the existence of the plugin table first:
    Code:
    if plugin~=nil then
        Turbine.Shell.WriteLine("Plugin:"..plugin:GetName())
    end

  13. #13
    Join Date
    Jun 2011
    Posts
    1,293
    That doesn't work for me. For example, I'm trying to load Equendil's HereBeDragons plugin. The first line in the first file it loads is import "Turbine.UI", but I get the error message "... of the Rings Online\Plugins\Turbine\UI\__in it__.lua:1: attempt to index global 'plugin' (a nil value)".
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  14. #14
    Join Date
    Mar 2007
    Posts
    1,436
    Quote Originally Posted by Thurallor View Post
    That doesn't work for me. For example, I'm trying to load Equendil's HereBeDragons plugin. The first line in the first file it loads is import "Turbine.UI", but I get the error message "... of the Rings Online\Plugins\Turbine\UI\__in it__.lua:1: attempt to index global 'plugin' (a nil value)".
    Ah. That's because Equendil imported Turbine.UI without first importing Turbine. Just add:
    import "Turbine"
    as the first line of __init__.lua in Turbine.UI and it will work.

    Code:
    import "Turbine"
    if plugin~=nil then
        Turbine.Shell.WriteLine("Plugin:"..plugin:GetName())
    end
    
    function Turbine.UI.ListBox:SetMaxItemsPerLine(items)
        self.maxItemsPerLine = items;
        if (self:GetOrientation() == Turbine.UI.Orientation.Horizontal) then
            self:SetMaxRows(2147483647); -- infinity
            self:SetMaxColumns(items);
        else
            self:SetMaxRows(items);
            self:SetMaxColumns(2147483647); -- infinity
        end
    end
    local Original_SetOrientation = Turbine.UI.ListBox.SetOrientation;
    function Turbine.UI.ListBox:SetOrientation(orientation)
        Original_SetOrientation(self, orientation);
        if (self.maxItemsPerLine) then
            -- backward compatibility mode
            self:SetMaxItemsPerLine(self.maxItemsPerLine);
        end
    end
    Last edited by Garan; Oct 11 2017 at 03:58 PM.

  15. #15
    Join Date
    Jun 2011
    Posts
    1,293
    Ugh. That won't work either, if you have the Turbine Class Library installed, which Earthsuit certainly does, based on the list of plugins he's running.

    If you do, when you import "Turbine", it finds "Turbine/__init.lua__", which imports "Timer.lua", which imports "TimerManager.lua", which imports "Turbine.UI". That makes a cycle that prevents "plugin" from being defined when my code executes, although I really don't understand the mechanism.

    *facepalm*
    Last edited by Thurallor; Oct 11 2017 at 07:08 PM.
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  16. #16
    Join Date
    Apr 2015
    Location
    Wisconsin, USA
    Posts
    235
    Quote Originally Posted by Thurallor View Post
    *facepalm*
    Quote Originally Posted by Garan View Post
    Ah.
    I unloaded and, one by one, reloaded all the plugins. The culprit was RaidHealz by Eruadarion. All the rest were well behaved. I'll drop a line on interface.
    ~~ If it hurts, it means you're still alive so you can stop whining. Now. ~~

  17. #17
    Join Date
    Jun 2011
    Posts
    1,293
    Quote Originally Posted by Earthsuit View Post
    I unloaded and, one by one, reloaded all the plugins. The culprit was RaidHealz by Eruadarion. All the rest were well behaved. I'll drop a line on interface.
    Interesting. I took a closer look at it, and I think RaidHealz is working as intended.

    Apparently as a workaround for a Lua API bug, it is continually unloading and reloading a small plugin called "PartyEffects2", which does nothing but get the player's party (Turbine.Gameplay.LocalPlayer: GetInstance():GetParty()) and make the effects information available to other plugins by registering some rather verbose shell commands.

    I guess moebius92 (the author of PartyFrame, on which RaidHealz is based) discovered that you can get a reliably updated effects list for party members by unloading/reloading the plugin. And so PartyFrame/RaidHealz is doing this every time it updates its display. I would've thought that would incur a very high overhead, but I guess not.
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  18. #18
    Join Date
    Apr 2015
    Location
    Wisconsin, USA
    Posts
    235
    Quote Originally Posted by Thurallor View Post
    Interesting. I took a closer look at it, and I think RaidHealz is working as intended....
    Thanks for all your attention on this. Appreciate the work done for the community.
    ~~ If it hurts, it means you're still alive so you can stop whining. Now. ~~

  19. #19
    Join Date
    Jan 2009
    Location
    Southeastern Pennsylvania
    Posts
    138
    It would appear that Standing Stone Games has broken all Plugins. This is a terrible development, and will result in cancellation of my 3 subscriptions if not fixed. One of LOTROs unique features is the music system, and Plugins make it manageable.

  20. #20
    Join Date
    Jun 2011
    Posts
    1,293
    Quote Originally Posted by Ashenwoods View Post
    It would appear that Standing Stone Games has broken all Plugins. This is a terrible development, and will result in cancellation of my 3 subscriptions if not fixed. One of LOTROs unique features is the music system, and Plugins make it manageable.
    They broke a lot of plugins, but did you try the workaround mentioned above?

    Edit: Rant about SSG's plugin support deleted. Garan's reply was a lot more diplomatic, see below.
    Last edited by Thurallor; Oct 28 2017 at 09:45 AM.
    Thurallor, Warden of Landroval
    Author of plugins: SequenceBars, Reminders, others

  21. #21
    Join Date
    Mar 2007
    Posts
    1,436
    Quote Originally Posted by Ashenwoods View Post
    It would appear that Standing Stone Games has broken all Plugins. This is a terrible development, and will result in cancellation of my 3 subscriptions if not fixed. One of LOTROs unique features is the music system, and Plugins make it manageable.
    No, SSG has not broken all Plugins, only those that use a specific control in a specific manner. Of all the plugins I've written, both published and private, only one was broken by this change. I chose to fix it and publish an update. However, Thurallor went a step further and published a fix that can be easily applied by any user and will fix all installed plugins by making them compatible with the new implementation of the ListBox.

    Plugins are third party add-ons and will ALWAYS be the red-headed step children of game development. The in-house product comes first and it should. Since the change started with an upgrade to one of the components of the game UI controls in order for them to better develop the game, they could have ignored the impact on plugins and not published a new API method that takes into account their underlying change. THAT would have broken many plugins in what most Lua developers would have considered an irresponsible way. They didn't, they implemented their internal changes and provided a way for Lua developers to work with the new system.

    Now, do I agree with how SSG implemented their changes, not, not really. There was a better solution that would have been more backward compatible and it was even pointed out to them by Thurallor (and others) well before their update was published. They chose to implement the change the way they did anyway. Why? We will probably never know, but I suspect it was a combination of reasons, the greatest being lack of time - remember Lua implementation and support is done by developers on their own time, that means some developer volunteered to devote his own time to make these changes, in this case, one is the developer that goes by the forum tag Silorien, so be nice to him. Additonally, inexperience may have been a factor, many game developers are very junior because game development is on the bleeding edge of technology and companies tend to hire developers straight out of college where they have been exposed to the latest technologies. While that provides knowledge of the latest technologies, it also limits their experience in the real world where things go wrong far more often than they go right. Another issue is that the code behind the implemented Lua environment was written years ago (with little oversight since it was a "pet project") and digging into it can be a frustrating and daunting task especially since the original developers aren't around to assist. I don't personally know Silorien or any of the other devs but given the time and money constraints on Lua development and his willingness to devote his own personal time to dig into it and provide us with a solution, optimal or not, I am willing to cut him some slack and I think the rest of the community should as well, otherwise we are likely to end up with what's behind door number 1 - a complete lack of support for future changes. If you think plugins broke this time, consider what COULD happen. Does that mean we shouldn't offer constructive criticism? No, of course not. But we should try to keep it constructive and civil, Thurallor's feedback has been both constructive and civil, not exaggerations like "broken all Plugins" or petulant threats of how we're going to stamp our feet, take our ball and go home if they don't fix something the way we want it fixed.

    EDIT: FWIW, I have also made the case for why Lua is a great benefit for (at the time Turbine) the game developers, offering a huge return on investment with literally hundreds of man-hours of development for every hour of in-house time invested. Lua developers offer many features beyond what the in-house staff can accomplish as well as new ways of looking at things and new features that aren't even in the client at all. Perhaps someone else will have better luck getting the powers that be to listen to reason - and no, threats and rude criticism certainly won't work, it would only have the opposite effect.
    Last edited by Garan; Oct 28 2017 at 09:48 AM.

  22. #22
    Thank you, Thurallor.

    I am using the TitanBar, and there had been an issue with one of my main characters which caused the plugin to constantly write error messages into the chat about something being not found (a nil value) although it was working. With your script, these messages are gone. The original bug might still be there, but as the (rest of the) plugin is still working, I can now use it without getting the chat box cluttered.


    Greetings, Polymachos
    Treufried, human Level 120 Lore Master, formerly from Maiar (DE), now on Belegaer
    Räuberhöhle auf Belegaer, Breelandsiedlung, Ochsbott, Lange Straße 5. Vorsicht, Fallen!
    Alexophor, human Level 120 Hunter, formerly a Nimrod, now on Landroval
    Awkward Animal Arena in Breeland Homesteads, 6 Long Street, Ersward (Landroval) - Minas Tirith under attack!

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

This form's session has expired. You need to reload the page.

Reload