CommandOverloader.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. KajetansMod.server.commandManager.getCommands().values().stream()
  10. // Overload only vanilla commands
  11. .filter(command -> !(command instanceof ModuleCommand))
  12. // Prevent overloading of already overloaded commands (summon, ...)
  13. .filter(command -> m.getCommand(command.getName()) == null)
  14. .forEach(command ->
  15. {
  16. Permissions perm;
  17. try
  18. {
  19. if(command.getClass().getName().startsWith("com.sk89q."))
  20. {
  21. m.registerCommand(e, new WorldEditCommand(command, m));
  22. m.sendToConsole(command.getName() + " wurde überschrieben.");
  23. return;
  24. }
  25. else
  26. {
  27. perm = Permissions.valueOf(command.getName());
  28. }
  29. }
  30. catch(IllegalArgumentException ex)
  31. {
  32. m.sendWarningToConsole("Ungültige Permission für Command-Name: " + command.getName());
  33. perm = Permissions.VANILLA;
  34. }
  35. m.registerCommand(e, new VanillaModuleCommand(command, m, perm));
  36. m.sendToConsole(command.getName() + " wurde überschrieben.");
  37. });
  38. m.sendToConsole("Alle Commands wurden überschrieben.");
  39. }
  40. }