Scripts.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package me.km.snuviscript;
  2. import java.util.Arrays;
  3. import java.util.HashSet;
  4. import me.hammerle.snuviscript.code.ISnuviLogger;
  5. import me.hammerle.snuviscript.code.ISnuviScheduler;
  6. import me.hammerle.snuviscript.code.Script;
  7. import me.hammerle.snuviscript.code.ScriptManager;
  8. import me.km.events.CustomEventCaller;
  9. public class Scripts {
  10. private final ScriptManager manager;
  11. private final ISnuviLogger logger;
  12. private CustomEventCaller cec = null;
  13. private final HashSet<String> scriptCommands = new HashSet<>();
  14. private final Limits entityLimits = new Limits();
  15. public Scripts(ISnuviLogger logger, ISnuviScheduler scheduler) {
  16. this.logger = logger;
  17. manager = new ScriptManager(logger, scheduler);
  18. }
  19. public void setCustomEventCaller(CustomEventCaller cec) {
  20. this.cec = cec;
  21. }
  22. public ScriptManager getScriptManager() {
  23. return manager;
  24. }
  25. public ISnuviLogger getLogger() {
  26. return logger;
  27. }
  28. public Limits getEntityLimits() {
  29. return entityLimits;
  30. }
  31. public boolean isRegisteredScriptCommand(String s) {
  32. return scriptCommands.contains(s);
  33. }
  34. public void registerScriptCommand(String s) {
  35. if(s.equals("script")) {
  36. return;
  37. }
  38. scriptCommands.add(s);
  39. }
  40. public void unregisterScriptCommand(String s) {
  41. scriptCommands.remove(s);
  42. }
  43. public void clearScriptCommands() {
  44. scriptCommands.clear();
  45. }
  46. public Script startScript(String name, String... names) {
  47. Arrays.setAll(names, i -> "scripts/" + names[i] + ".txt");
  48. return manager.startScript(sc -> cec.removeScriptData(sc), name == null ? names[0] : name, names);
  49. }
  50. }