stanhebben / MineTweaker3

Tweak your minecraft experience
68 stars 32 forks source link

Command to run single scripts while ingame? #409

Open Sympai opened 7 years ago

Sympai commented 7 years ago

This is not really an issue, but more of a convenience. As of right now I don't know of any way to run a single script in game by itself, other than making a packmode from ftbtweaks/lib and just placing the script and running it via /ftb packmode. Would be nice to see a command that could run scripts in-game. /mt run.

jaredlll08 commented 7 years ago

Sounds like a nice idea, may I ask why though?

Sympai commented 7 years ago

I would like to create several scripts that are activated upon the completion of certain quests utilizing the BQ mod. For example if I wanted a recipe to be defaulted as removed, but later down the road, after the completion of certain quests, to be re-added. As of right now I can do that by simply throwing a script into the packmodes folder and making a packmode, then issuing /ftb packmode set . However, this does produce chat text, and seems like a rather bulky effort, as I might need to make 20+ modes. Less than idea, hence this being more about convenience.

tl;dr: Singular command to enable scripts to aid in modpack development to control the triggering of certain events

Sympai commented 7 years ago

Feel free to message me on Twitter @noticemesympai if you need to!

jaredlll08 commented 7 years ago

The problem with that is that on a server, if one player completed the quest, all players will now have access to the changed recipes Also the quests wouldn't rerun their command, meaning that the script will never be loaded again

PrincessRTFM commented 7 years ago

I understand the first issue, but there's nothing to be done about that. Leave it as-is, and call it a feature, I guess?

For the second, do you mean that server restarts would break things? Cause I can't think of a good way to fix that, but I suppose you could, instead of running the command block that runs the script directly, use /setblock to connect power to a block that runs the command. Basically:

  1. Player completes quest
  2. Command block triggers
  3. /setblock <x> <y> <z> <redstone block tile name> is run
  4. Redstone block triggers different command block, which runs /mt run <script>

Would that also trip the command block on server restart? If not, you could also use ComputerCraft with a chunk loader, by writing the /startup file to wait a second, then output redstone to a command block. Or better, use a Command Computer to do it directly, so players can't interfere. Actually, the Command Computer solution is probably the best one.

Sympai commented 7 years ago

Would there be no way to attach the script to a players id? After the quest is complete why would the script ever need to be loaded again? Does the game not save the changes upon quitting? I forsee these issues being more of a hurdle for multiplayer. If so I guess my pack would be extremely limited to singleplayer... But I doubt it has to completely be that way. If there is a will... There must be a way :3.

jaredlll08 commented 7 years ago

No way to attach it to a playerid, and changes are NOT saved

On Feb 17, 2017 14:29, "Sympai" notifications@github.com wrote:

Would there be no way to attach the script to a players id? After the quest is complete why would the script ever need to be loaded again? Does the game not save the changes upon quitting? I forsee these issues being more of a hurdle for multiplayer. If so I guess my pack would be extremely limited to singleplayer... But I doubt it has to completely be that way. If there is a will... There must be a way :3.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/stanhebben/MineTweaker3/issues/409#issuecomment-280636900, or mute the thread https://github.com/notifications/unsubscribe-auth/AFS9xaCRrXpZ9OLaNFLEsry5BA7HHJYzks5rdZK-gaJpZM4MCT_Y .

Sympai commented 7 years ago

So I take it when FTBlib or Tweaks or whichever one handles the packmode json executes the scripts it is the one handling the saving of recipes and such after the script is executed. Like for expert modes and such. Therefore, utilizing the packmodes method I am currently is the only way to get my idea to work essentially?

jaredlll08 commented 7 years ago

No, they tell Crt to load from ma certain folder, minecraft handles the recipes from there

On Feb 17, 2017 19:57, "Sympai" notifications@github.com wrote:

So I take it when FTBlib or Tweaks or whichever one handles the packmode json executes the scripts it is the one handling the saving of recipes and such after the script is executed. Like for expert modes and such. Therefore, utilizing the packmodes method I am currently is the only way to get my idea to work essentially?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/stanhebben/MineTweaker3/issues/409#issuecomment-280721355, or mute the thread https://github.com/notifications/unsubscribe-auth/AFS9xSy4JIF9DzCKJ1bA6TPlbIBTFgfDks5rdd-jgaJpZM4MCT_Y .

Sympai commented 7 years ago

But essentially this is the only way to have it work? Cause currently doing the packmodes method is the only way I can do it. It's a neat system as it triggers the recipe back in upon completion of a quest utilizing packmodes. I just wanted an easier less reliant way on packmodes to do it.... But thanks for the information!

Blue64 commented 7 years ago

@Sympai you can always grant items as rewards for said Quests and set the Recipes to use the Items given by the Quests with a recipe always returning said Item, perhaps binding the Item to a specific Player similar to the Blood Magic's Soul Network.

@jaredlll08 is there a way to check for something like that to ensure that the player using the Item is the one mentioned in the "bound" NBT Tag?