Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Due to spam on this forum, all posts now need moderator approval.
Entire forum
➜ MUSHclient
➜ Lua
➜ addxml function and duplicates
addxml function and duplicates
|
It is now over 60 days since the last post. This thread is closed.
Refresh page
Posted by
| Tboydston
(14 posts) Bio
|
Date
| Tue 24 Mar 2009 07:04 PM (UTC) |
Message
| Howdy!
I've been trying to get away from plugins and generate some more effective and powerful scripts. Unfortunately, it's given me a two (very minor) headaches.
Here's some issues I'm having:
require "file"
When it runs through all of the paths for where this file could be (Lua library locations, MUSH library locations and the current folder I believe) it always comes back saying it can't find the file. Here is what I switched to:
f1 = loadfile("test.lua")
f1()
f1("something something yada yada")
This is working well enough for me, but it seems like it's a bit sloppier than require and could have some issues in the future. Does anyone else think this as well?
addXML function
Right now, every time my main lua file runs, it imports the XML all over again. Even though this isn't very efficient, I don't mind it for the time being. I also haven't noticed any duplicates issue. I was hoping to find out if it replaces the old triggers and aliases with the same name, or if when it sees a duplicate it just goes on to the next one. I can't think of any way to test this and I can't find it in the documentation.
Thanks guys! | Top |
|
Posted by
| Tboydston
(14 posts) Bio
|
Date
| Reply #1 on Tue 24 Mar 2009 07:05 PM (UTC) |
Message
| Sorry, my subject line didn't include the require issue. I should have been more accurate. | Top |
|
Posted by
| Nick Gammon
Australia (23,158 posts) Bio
Forum Administrator |
Date
| Reply #2 on Wed 25 Mar 2009 05:12 AM (UTC) |
Message
| Require follows the paths in package.path. So, adjust package.path to point to where you plan to put your stuff.
As for the duplicates issue, I couldn't find any documentation either. ;)
A test with adding a trigger of a certain name, and then another of the same name but different functionality (plus reading the code) shows that duplicates are silently replaced.
I don't know why you need to run addxml all the time - once the triggers etc. are added, surely you don't need to add them next time? And, plugins can have their own triggers in the plugin file. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Tboydston
(14 posts) Bio
|
Date
| Reply #3 on Wed 25 Mar 2009 10:48 PM (UTC) |
Message
| I figured that if I imported the XML every time MUSH started up I wouldn't have to worry about having updated a trigger that wasn't loaded. I'm sure I could write a function to check to see if my xml files match up with what's been loaded, but it doesn't seem 100% necessary.
Of course, being such a MUSH newbie it's possible that I am completely overlooking some heavily used function.
Thanks for getting back to me! | Top |
|
Posted by
| Worstje
Netherlands (899 posts) Bio
|
Date
| Reply #4 on Wed 25 Mar 2009 11:23 PM (UTC) |
Message
| You are very much reinventing plugins with what you are doing. The main script file differs in plugin behaviour in that it gets reloaded seperately from triggers, and as such, you will face duplicating/overwriting details that you can't ignore. Plugins handle all that kind of thing for you and make it into a clean slate.
If you really want to do things this way (for reasons I don't want to know nor imagine worth it) you can make a function that loads all of the triggers you want and call that manually when you feel stuff needs refreshing.
Although MUSHclient is quite fast and probably doesn't really feel the pain of you reloading it each time... but then again, I'm not too sure how often the main script file gets reloaded since I pretty much never use it. | Top |
|
Posted by
| Nick Gammon
Australia (23,158 posts) Bio
Forum Administrator |
Date
| Reply #5 on Wed 25 Mar 2009 11:45 PM (UTC) |
Message
|
Quote:
I figured that if I imported the XML every time MUSH started up I wouldn't have to worry about having updated a trigger that wasn't loaded.
I don't know what you mean by that. The world file is an XML file in the first place (you can edit it with Notepad), and so are plugin files. So putting a script in that uses addxml to load a trigger "just in case" seems to be a roundabout way of checking that the world file, or plugin file, is correct.
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
15,288 views.
It is now over 60 days since the last post. This thread is closed.
Refresh page
top