CommandOverloader.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package me.km.api;
  2. import me.km.KajetansMod;
  3. import me.km.permissions.Permissions;
  4. import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
  5. public class CommandOverloader
  6. {
  7. public static void overloadCommands(FMLServerStartingEvent e, Module m)
  8. {
  9. if(!KajetansMod.debugMode)
  10. {
  11. KajetansMod.server.commandManager.getCommands().values().stream()
  12. // Overload only vanilla commands
  13. .filter(command -> !(command instanceof ModuleCommand))
  14. // Prevent overloading of already overloaded commands (summon, ...)
  15. .filter(command -> m.getCommand(command.getName()) == null)
  16. .forEach(command ->
  17. {
  18. Permissions perm;
  19. try
  20. {
  21. if(command.getClass().getName().startsWith("com.sk89q."))
  22. {
  23. m.registerCommand(e, new WorldEditCommand(command, m));
  24. m.sendToConsole(command.getName() + " wurde überschrieben.");
  25. return;
  26. }
  27. else
  28. {
  29. perm = Permissions.valueOf(command.getName());
  30. }
  31. }
  32. catch(IllegalArgumentException ex)
  33. {
  34. m.sendWarningToConsole("Ungültige Permission für Command-Name: " + command.getName());
  35. perm = Permissions.VANILLA;
  36. }
  37. m.registerCommand(e, new VanillaModuleCommand(command, m, perm));
  38. m.sendToConsole(command.getName() + " wurde überschrieben.");
  39. });
  40. m.sendToConsole("Alle Commands wurden überschrieben.");
  41. }
  42. }
  43. }