Culley-Studios / ProQuests-Documentation

The most customizable and immersive quest plugin.
1 stars 2 forks source link

/quest reset all - Server stops responding #250

Closed Meldiron closed 5 years ago

Meldiron commented 5 years ago

Spigot account -https://www.spigotmc.org/members/meldiron.92826/

Plugin version - v2.1.1.3.1 (Build #92826)

Spigot Version - This server is running Paper version git-Paper-486 (MC: 1.13.2) (Implementing API version 1.13.2-R0.1-SNAPSHOT)

Link to log file - https://pastebin.com/fchjAsst

Additional information After typing command, server stops responding so I cant send confirm command. After 60 secs it unfreeze server but restart is not performed. I would like to automatically reset all cooldowns at 3AM so confirming is also problem for me - would it be possible to add setting into config.yml to set whether ask for confirm or not?

JCulley commented 5 years ago

You have not provided your entire log from startup, so if you could please provide that.

Additionally are you running the command in-game or by console?

The reset all command is used to completely wipe out all player data (which is why you must confirm). If you want to reset all cooldowns at 3AM specifically you would have to develop a custom plugin to do so. There is no functionality to reset cooldowns at a specific time and it’s not something I plan on adding as seems like a rather specific requirement for your needs.

Meldiron commented 5 years ago

Full log is not requred, you can easily simulate it. Anyway, full log: https://pastebin.com/tnGsjpDm

Im running command by console.

I wont have any problem developing custom plugin but how do I do it? I checked out https://github.com/JCulley/ProQuests-Documentation/wiki/API but I didnt find method to remove cooldown.

EDIT: I dont request for functionality to run command at specific time, I will do this using another plugin. I just need command like /quests resetcooldown <playername/all> (something like that)

JCulley commented 5 years ago

The repeat delays are set per quest, so you would have to retrieve the players individual Quest instance from the QuestManager and set the REPEAT date for each one to a specific date (if they have already completed it). It’s not a command a would plan on adding as like I said this is a very specific use case and quests weren’t ideally designed to be reset at a globally set time for every player which is why they’re saved the way they are.

I’ll look into the /quest reset issue however to see if I can recreate it.

Meldiron commented 5 years ago

Ok, thanks.

About cooldown problem - so there is actually no way to achieve this? Anything would be useful. Maybe something like: set cooldown to 0 (in config), reload, set back to 1 year.. So it reset cooldowns (I tried this, it didnt work but maybe there is some similar way to do it).

JCulley commented 5 years ago

As I said, quest objects are defined on a per user basis so no there current way of doing this without iterating through every single quest object in the database.

Meldiron commented 5 years ago

Ok, Ill try it. Last crazy idea - How does your plugin know current time to compare to when quest was finished? Maybe if I forward server time +24 hours, would it work? :D

JCulley commented 5 years ago

I've fixed the /quest reset all command for the next release.

JCulley commented 5 years ago

https://www.spigotmc.org/resources/proquests-1-7-1-13-2-20-off-spring-sale-give-players-objectives.18249/update?update=270376