Thank you! I was already under the impression that the situation was sticky, but hearing it from you is encouraging, especially as it is accompanied by your statement that this is all about, which is that you intend to update your mods to whatever is best promptly. I hate seeing developers just stay in one spot and say, "I don't like Minecraft 1.1's features, so I'm leaving my mod to be compatible for 1.0.1," "modloader is teh best so i dun wanna move to teh new thingy," or other such idiotic, counter-productive excuses for laziness. Your will to keep your mods updated earns you much support. ^^
No, I understand; it was my fault because I was unclear. Haha, thanks. xD
Hm, then I think that there's an error... When I use $$i:d, it works exactly the same as $$i. It gives me the exact same item menu for both entries. If I want red wool, I have to click on wool and manually enter the ":14" each time. The menu doesn't list some otherwise-inaccessible items, such as snow tiles, I've noticed, so I manually write those in, too. I've also noticed that a bunch of data values just don't work; if I try to make a snow tile with a 3 value for a "snow slab," the game just doesn't care and gives me a normal snow tile. Am I supposed to use data values to edit them once they're placed, or is something else the matter? Sorry to be a n00b, but if I have to edit them after being placed, how do I do so? Is there a WorldEdit command?
Is there a way to properly parse MyWarp output? It spits out a format when /warp list %s that doesn't parse right.. Maybe customizing the list output processing somehow?
Edit: found this in the settings
discover.warpignoreregex=^\xa7c
discover.warppageregex=^\xa77.+?page [0-9]+ of ([0-9]+)
It seems simple enough.. but maybe a .txt or blurb in the readme about how to set this up?
EditEdit: '/warp slist' sends a simple hmod-style list that works great :smile.gif: So nevermind..
EditEditEdit: Why doesn't the list of warps get added in alphabetical when I "Import All"?
Hm, then I think that there's an error... When I use $$i:d, it works exactly the same as $$i. It gives me the exact same item menu for both entries. If I want red wool, I have to click on wool and manually enter the ":14" each time. The menu doesn't list some otherwise-inaccessible items, such as snow tiles, I've noticed, so I manually write those in, too. I've also noticed that a bunch of data values just don't work; if I try to make a snow tile with a 3 value for a "snow slab," the game just doesn't care and gives me a normal snow tile. Am I supposed to use data values to edit them once they're placed, or is something else the matter? Sorry to be a n00b, but if I have to edit them after being placed, how do I do so? Is there a WorldEdit command?
Currently it shows the same entries for both $$i and $$i:d but it should append the damage value only when using the latter. Does the mod/plugin that you're using support damage values? It's possible that it's bugging out and not supplying the damage value for some reason but I haven't been able to replicate it. To be certain just bind the param on its own with no command and see what it spits out in chat, I'd certainly be interested if there were some cirmcumstance where it's not properly entering those values and I'll do my best to fix it.
Is there a way to properly parse MyWarp output? It spits out a format when /warp list %s that doesn't parse right.. Maybe customizing the list output processing somehow?
Edit: found this in the settings
discover.warpignoreregex=^\xa7c
discover.warppageregex=^\xa77.+?page [0-9]+ of ([0-9]+)
It seems simple enough.. but maybe a .txt or blurb in the readme about how to set this up?
EditEdit: '/warp slist' sends a simple hmod-style list that works great :smile.gif: So nevermind..
EditEditEdit: Why doesn't the list of warps get added in alphabetical when I "Import All"?
Glad you got it working, and it's useful to know about the alt command as I think someone mentioned MyWarp previously but I didn't get a chance to properly research it yet. Regexs aren't everyone's cup of tea which is why they're hidden away in the config file, on the basis that if you know what you're looking for you'll probably also know what you're doing. I will add some documentation (and possibly presets) in the future, but I've been taking things case-by-case up to now since it's easier for me to figure out what the regex needs to be and then tell people what to set.
I can fix the alphabetical addition, the list shows the entries after they are sorted but the "Import all" function works with the underlying list directly so doesn't see the sorting. I can make it so that it imports the sorted list though so I'll change that.
But when i make it into the .txt file and i bind $$<textnamehere.txt> to a key, it just spams chat and doesnt work, any ideas?
To denote what is script and what is chat the mod uses $${ and }$$ (similar to <? and ?> in aspx/php) so you need to either put those tags into the macro or into the script file:
like that. Either will work, it's just so that the macro parser knows which bit is chat and which is script. You can mix and match: for example to send a chat command every minute you can mix script and chat like this:
Greetings, Mumfrey,
I would first and foremost like to thank you for this mod. It's wonderful, and saves me lots of trouble when I'm trying to keybind items. However, I appear to be having a small amount of difficulty. You see, I want the ability to have my macro toggle when I press the "end" key, and I want it to send a file every 30 minutes. I've figured out how to send the file and the delay, but the toggle is confusing me. Any help you could give me?
Thanks in advance,
-BlacKnight339
Greetings, Mumfrey,
I would first and foremost like to thank you for this mod. It's wonderful, and saves me lots of trouble when I'm trying to keybind items. However, I appear to be having a small amount of difficulty. You see, I want the ability to have my macro toggle when I press the "end" key, and I want it to send a file every 30 minutes. I've figured out how to send the file and the delay, but the toggle is confusing me. Any help you could give me?
Thanks in advance,
-BlacKnight339
Sure, the idiom for toggling things is pretty useful and can be applied to lots of things. Essentially you combine the flag capability with conditional expressions: Specifically, the script action TOGGLE() can be used to change the state of a flag (if you don't specify a name then it just uses the name "flag") and you can then test for the state of the flag to either a) run a macro or b) stop a macro that's running. Put together this looks like this:
$${
TOGGLE();
IF(flag);
// this is where your macro goes
ELSE;
STOP();
ENDIF;
}$$
That's basically it, it's worth noting that calling STOP() with no parameters like that basically stops running macros on the key it's invoked from.
Hope this is what you're looking for, it's a simple idiom with a million uses :smile.gif:
Shortly after I had posted my message, I started seeing colored wool in the items list. Priorly, they had magically eluded me. For God-knows-why, I neglected to do some playtesting. :sleep.gif: I do recall, however, that the $$i parameter consistently gave me oak logs and leaves, which would mean that the $$i command indeed parses the default 0 data value consistently. I'm going to go back over to my friend's place and run some tests in a little while, but I should mention that I seem to recall the $$i:d giving me oak stuff, too. Anyway, I'll get back to you with those test results once I can.
Also, in a future update, I suggest checking the wiki page on data values and adding some other cool junk, like spawner eggs for every entity except dropped items (I have tested that; it caused me to disconnect from my singleplayer world. ._.) and "jungle" leaves. See, "jungle" wood was taken out along with ocelots and cats after their short debut, so wood:3 will run back around to oak wood (:0), but the jungle leaves were oddly left in. They're nothing too impressive, since they're basically just a slightly darker shade of oak leaves, but they're interesting.
Edit: Actually, there are other spawn eggs that you'd probably want to omit, namely the blaze/ghast fireballs (They don't seem to work.), shot arrows/thrown snowballs (probably defective, too, but useless either way), thrown ender pearls/eyes (again, defective), "falling blocks," minecarts, boats, and ocelots, though the latter should be kept in mind because Mojang may re-implement the jungle cats at some point.
Sure, the idiom for toggling things is pretty useful and can be applied to lots of things. Essentially you combine the flag capability with conditional expressions: Specifically, the script action TOGGLE() can be used to change the state of a flag (if you don't specify a name then it just uses the name "flag") and you can then test for the state of the flag to either a) run a macro or b) stop a macro that's running. Put together this looks like this:
$${
TOGGLE();
IF(flag);
// this is where your macro goes
ELSE;
STOP();
ENDIF;
}$$
That's basically it, it's worth noting that calling STOP() with no parameters like that basically stops running macros on the key it's invoked from.
Hope this is what you're looking for, it's a simple idiom with a million uses :smile.gif:
Thanks for the quick reply. What you posted is working... sort of.
I currently have the following in advert.txt:
Of course, it won't say "Message1" "Message2" "Message3" every 1ms once it's done, but I'm just testing it for now. Don't want to have to wait 30 minutes for it to run.
However, when I press END (Which has the command $$<advert.txt> in it), my character says
and then prints (Not in chat, of course) "Script terminated with uncollapsed stack, check your script syntax."
I'm new to this kind of scripting, and so I can't figure out what's wrong.
Of course, it won't say "Message1" "Message2" "Message3" every 1ms once it's done, but I'm just testing it for now. Don't want to have to wait 30 minutes for it to run.
However, when I press END (Which has the command $$<advert.txt> in it), my character says
and then prints (Not in chat, of course) "Script terminated with uncollapsed stack, check your script syntax."
I'm new to this kind of scripting, and so I can't figure out what's wrong.
You can't re-enter script processing mode when you're already inside it, so the second $${ will be ignored, that means when it reaches the next }$$ it will see it as the end of the script and everything after that as chat. Remove the $${ }$$ around the inner clause and everything will be fine:
Id like to report a minor bug. If you have TooManyItems or Worldedit CUI(yetanotherx's 1.1 version)and this mod installed, then calling a
$${DISCONNECT}$$
causes MC to crash.
TooManyitems crash report
java.lang.NullPointerException
at TMIConfig.isMultiplayer(TMIConfig.java:81)
at TMIUtils.updateUnlimitedItems(TMIUtils.java:307)
at mod_TooManyItems.OnTickInGame(mod_TooManyItems.java:27)
at ModLoader.OnTick(ModLoader.java:1131)
at EntityRendererProxy.b(EntityRendererProxy.java:16)
at net.minecraft.client.Minecraft.x(SourceFile:742)
at net.minecraft.client.Minecraft.run(SourceFile:662)
at java.lang.Thread.run(Thread.java:619)
Worldedit CUI crash report
java.lang.NullPointerException
at wecui.obfuscation.Obfuscation.getPlayerX(Obfuscation.java:106)
at wecui.obfuscation.Obfuscation.setEntityPositionToPlayer(Obfuscation.java:130)
at wecui.obfuscation.Obfuscation.spawnEntity(Obfuscation.java:98)
at mod_WorldEditCUI.OnTickInGame(mod_WorldEditCUI.java:65)
at ModLoader.OnTick(ModLoader.java:1131)
at EntityRendererProxy.b(EntityRendererProxy.java:16)
at net.minecraft.client.Minecraft.x(SourceFile:742)
at net.minecraft.client.Minecraft.run(SourceFile:662)
at java.lang.Thread.run(Thread.java:619)
After some playtesting, it appears that $$i:d is working again, so, whatever the problem was, it was a temporary error that was probably due to another mod. Of course, it still only applies to leaves (except jungle), wood, and wool, but at least it's working, as is everything else, so all is savvy. Thanks again for the handy mod and your awesome responsiveness. :happy.gif:
IF(CTRL);
ECHO("CTRL was pressed!");
ELSEIF(SHIFT);
ECHO("SHIFT was pressed!");
ELSE;
ECHO("No modifiers was pressed!");
ENDIF;
Everything works except the SHIFT-button. If I switch it to ALT or any other key it works perfectly. Is there a solution to this?
EDIT: This seems to only be a problem when I set the script-file to a number on the numpad.
If you have SHIFT bound to sneak then it can be a bit unpredictable, essentially using SHIFT as a modifier won't work if it's also the SNEAK key, similarly to how zombe's mod conflicts with SHIFT as the fly speed/run speed toggle if you leave sneak on shift. If you don't have sneak on shift then this is a bug and I'll check it out.
After some playtesting, it appears that $$i:d is working again, so, whatever the problem was, it was a temporary error that was probably due to another mod. Of course, it still only applies to leaves (except jungle), wood, and wool, but at least it's working, as is everything else, so all is savvy. Thanks again for the handy mod and your awesome responsiveness. :happy.gif:
Cool, well at least it's working: the damage value also applies to different types of stonebrick and also different types of half-step like brick and sandstone as well as a couple of other things like snow.
You can't unbind the third person key unfortunately, it's literally hard-coded in the game, but you can assign a macro to activate the third-person by simulating that key event using PRESS. Just bind the following to any key you want to use:
Could you add support for xWarp plugin? When I try to auto retreive warps, I will get a lot of nonsense stuff. Probably because xWarp uses quite complex format to display warps. It includes warp name, author, coordinates etc.
Ah yes that is indeed a little more involved than the normal warp list. I'll see about adding some support for that format in the next version but I don't think it's possible with the current parser to process that output.
I've tried this on a clean install of Minecraft. Only modloader and this mod are used and I don't have the SHIFT-key bound to anything. It works fine if I use the script-file on basically any key except the numbers on the numpad (which is where I really want it to be).
I think what is happening then is that when you press SHIFT, the keystroke which is actually sent will be the non-numlock'd function (for example pressing SHIFT-3 will actually send PAGEDOWN), so I guess there's not really any way around that unless you are not using the PAGEDOWN key itself. On the other hand, whilst it's a little convoluted you could always have the PAGEDOWN key macro itself actually check whether SHIFT is held down and then execute the function you actually want on SHIFT+NUMPAD3 - it means you only get one macro on that key but it does allow you to do what you want.
Sorry it's a bit of a fiddle but ultimately the mod is at the mercy of the keystrokes it actually receives from the keyboard event queue, which in this case is the wrong key.
Cool, well at least it's working: the damage value also applies to different types of stonebrick and also different types of half-step like brick and sandstone as well as a couple of other things like snow.
Oh, right; I forgot about the stone bricks and slabs. It works for those, too. It doesn't work for snow, though; I've tried.
Thank you so much, now I understand the problem. I've tried what you said and it worked but that means to many buttons which I already use becomes unavailable (Arrow-keys, PageUp, PageDown, Home and End). I guess there's nothing to do but to keep using my current solution.
That's what I figured, it's a bit of a bugger really. That said, what I was suggesting was that if you wanted shift-modifiers on the numpad but can cope without them on the other keys, you could for example bind stuff like this:
On NUMPAD3:
IF(~CTRL);
ECHO("NUMPAD3 with CTRL pressed");
ELSEIF(~ALT);
ECHO("NUMPAD3 with ALT pressed");
ELSE
ECHO("NUMPAD3 with no modifiers");
ENDIF;
On PAGEDOWN:
IF(~SHIFT);
ECHO("NUMPAD3 with SHIFT pressed!!");
ELSE
ECHO("PAGEDOWN with no modifiers");
ENDIF;
So it only works if you can sacrifice SHIFT+PAGEDOWN as a key chord (or are happy for it to do the same thing as SHIFT+NUMPAD3) but it is at least workable :smile.gif: Does that help at all?
I get some really odd behavior using this. It only works sometimes. For example if I press SHIFT and NUMPAD3 ten times then maybe I get the "NUMPAD3 with SHIFT pressed" written one time and the "PAGEDOWN with no modifiers" written nine times. Sometimes it doesn't work at all.
Ok that's just weird. Well I guess it's a no-go then :sad.gif: I blame solar flare activity, or possibly the phase of the moon.
No, I understand; it was my fault because I was unclear. Haha, thanks. xD
Hm, then I think that there's an error... When I use $$i:d, it works exactly the same as $$i. It gives me the exact same item menu for both entries. If I want red wool, I have to click on wool and manually enter the ":14" each time. The menu doesn't list some otherwise-inaccessible items, such as snow tiles, I've noticed, so I manually write those in, too. I've also noticed that a bunch of data values just don't work; if I try to make a snow tile with a 3 value for a "snow slab," the game just doesn't care and gives me a normal snow tile. Am I supposed to use data values to edit them once they're placed, or is something else the matter? Sorry to be a n00b, but if I have to edit them after being placed, how do I do so? Is there a WorldEdit command?
Edit: found this in the settings
discover.warpignoreregex=^\xa7c
discover.warppageregex=^\xa77.+?page [0-9]+ of ([0-9]+)
It seems simple enough.. but maybe a .txt or blurb in the readme about how to set this up?
EditEdit: '/warp slist' sends a simple hmod-style list that works great :smile.gif: So nevermind..
EditEditEdit: Why doesn't the list of warps get added in alphabetical when I "Import All"?
do;
do(2500);
key(use);
wait(5000ms);
key(use);
wait(1000ms);
loop;
inventorydown();
loop;
But when i make it into the .txt file and i bind $$<textnamehere.txt> to a key, it just spams chat and doesnt work, any ideas?
Currently it shows the same entries for both $$i and $$i:d but it should append the damage value only when using the latter. Does the mod/plugin that you're using support damage values? It's possible that it's bugging out and not supplying the damage value for some reason but I haven't been able to replicate it. To be certain just bind the param on its own with no command and see what it spits out in chat, I'd certainly be interested if there were some cirmcumstance where it's not properly entering those values and I'll do my best to fix it.
Glad you got it working, and it's useful to know about the alt command as I think someone mentioned MyWarp previously but I didn't get a chance to properly research it yet. Regexs aren't everyone's cup of tea which is why they're hidden away in the config file, on the basis that if you know what you're looking for you'll probably also know what you're doing. I will add some documentation (and possibly presets) in the future, but I've been taking things case-by-case up to now since it's easier for me to figure out what the regex needs to be and then tell people what to set.
I can fix the alphabetical addition, the list shows the entries after they are sorted but the "Import all" function works with the underlying list directly so doesn't see the sorting. I can make it so that it imports the sorted list though so I'll change that.
To denote what is script and what is chat the mod uses $${ and }$$ (similar to <? and ?> in aspx/php) so you need to either put those tags into the macro or into the script file:
like that or:
like that. Either will work, it's just so that the macro parser knows which bit is chat and which is script. You can mix and match: for example to send a chat command every minute you can mix script and chat like this:
I would first and foremost like to thank you for this mod. It's wonderful, and saves me lots of trouble when I'm trying to keybind items. However, I appear to be having a small amount of difficulty. You see, I want the ability to have my macro toggle when I press the "end" key, and I want it to send a file every 30 minutes. I've figured out how to send the file and the delay, but the toggle is confusing me. Any help you could give me?
Thanks in advance,
-BlacKnight339
Sure, the idiom for toggling things is pretty useful and can be applied to lots of things. Essentially you combine the flag capability with conditional expressions: Specifically, the script action TOGGLE() can be used to change the state of a flag (if you don't specify a name then it just uses the name "flag") and you can then test for the state of the flag to either a) run a macro or b) stop a macro that's running. Put together this looks like this:
That's basically it, it's worth noting that calling STOP() with no parameters like that basically stops running macros on the key it's invoked from.
Hope this is what you're looking for, it's a simple idiom with a million uses :smile.gif:
Also, in a future update, I suggest checking the wiki page on data values and adding some other cool junk, like spawner eggs for every entity except dropped items (I have tested that; it caused me to disconnect from my singleplayer world. ._.) and "jungle" leaves. See, "jungle" wood was taken out along with ocelots and cats after their short debut, so wood:3 will run back around to oak wood (:0), but the jungle leaves were oddly left in. They're nothing too impressive, since they're basically just a slightly darker shade of oak leaves, but they're interesting.
Edit: Actually, there are other spawn eggs that you'd probably want to omit, namely the blaze/ghast fireballs (They don't seem to work.), shot arrows/thrown snowballs (probably defective, too, but useless either way), thrown ender pearls/eyes (again, defective), "falling blocks," minecarts, boats, and ocelots, though the latter should be kept in mind because Mojang may re-implement the jungle cats at some point.
Thanks for the quick reply. What you posted is working... sort of.
I currently have the following in advert.txt:
Of course, it won't say "Message1" "Message2" "Message3" every 1ms once it's done, but I'm just testing it for now. Don't want to have to wait 30 minutes for it to run.
However, when I press END (Which has the command $$<advert.txt> in it), my character says
and then prints (Not in chat, of course) "Script terminated with uncollapsed stack, check your script syntax."
I'm new to this kind of scripting, and so I can't figure out what's wrong.
You can't re-enter script processing mode when you're already inside it, so the second $${ will be ignored, that means when it reaches the next }$$ it will see it as the end of the script and everything after that as chat. Remove the $${ }$$ around the inner clause and everything will be fine:
causes MC to crash.
TooManyitems crash report
Thanks for the detailed reports, with the detailed information that you've provided I think I can rectify that one.
After some playtesting, it appears that $$i:d is working again, so, whatever the problem was, it was a temporary error that was probably due to another mod. Of course, it still only applies to leaves (except jungle), wood, and wool, but at least it's working, as is everything else, so all is savvy. Thanks again for the handy mod and your awesome responsiveness. :happy.gif:
If you have SHIFT bound to sneak then it can be a bit unpredictable, essentially using SHIFT as a modifier won't work if it's also the SNEAK key, similarly to how zombe's mod conflicts with SHIFT as the fly speed/run speed toggle if you leave sneak on shift. If you don't have sneak on shift then this is a bug and I'll check it out.
Cool, well at least it's working: the damage value also applies to different types of stonebrick and also different types of half-step like brick and sandstone as well as a couple of other things like snow.
You can't unbind the third person key unfortunately, it's literally hard-coded in the game, but you can assign a macro to activate the third-person by simulating that key event using PRESS. Just bind the following to any key you want to use:
Yes, although be aware that entering a GUI such as chat or inventory will cause it to come un-stuck. But you can bind a key to toggle sneak using:
or if you just want a button to activate sneak (and press sneak itself to "un toggle") then use
Ah yes that is indeed a little more involved than the normal warp list. I'll see about adding some support for that format in the next version but I don't think it's possible with the current parser to process that output.
I think what is happening then is that when you press SHIFT, the keystroke which is actually sent will be the non-numlock'd function (for example pressing SHIFT-3 will actually send PAGEDOWN), so I guess there's not really any way around that unless you are not using the PAGEDOWN key itself. On the other hand, whilst it's a little convoluted you could always have the PAGEDOWN key macro itself actually check whether SHIFT is held down and then execute the function you actually want on SHIFT+NUMPAD3 - it means you only get one macro on that key but it does allow you to do what you want.
Sorry it's a bit of a fiddle but ultimately the mod is at the mercy of the keystrokes it actually receives from the keyboard event queue, which in this case is the wrong key.
Oh, right; I forgot about the stone bricks and slabs. It works for those, too. It doesn't work for snow, though; I've tried.
That's what I figured, it's a bit of a bugger really. That said, what I was suggesting was that if you wanted shift-modifiers on the numpad but can cope without them on the other keys, you could for example bind stuff like this:
On NUMPAD3:
On PAGEDOWN:
So it only works if you can sacrifice SHIFT+PAGEDOWN as a key chord (or are happy for it to do the same thing as SHIFT+NUMPAD3) but it is at least workable :smile.gif: Does that help at all?
Ok that's just weird. Well I guess it's a no-go then :sad.gif: I blame solar flare activity, or possibly the phase of the moon.