BanCommands.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package me.km.snuviscript.commands;
  2. import com.mojang.authlib.GameProfile;
  3. import java.util.Date;
  4. import java.util.GregorianCalendar;
  5. import me.hammerle.snuviscript.code.ScriptManager;
  6. import static me.km.snuviscript.commands.CommandUtils.getUUID;
  7. import net.minecraft.entity.player.ServerPlayerEntity;
  8. import net.minecraft.server.MinecraftServer;
  9. import net.minecraft.server.management.ProfileBanEntry;
  10. import net.minecraft.util.text.StringTextComponent;
  11. public class BanCommands {
  12. public static void registerFunctions(ScriptManager sm, MinecraftServer server) {
  13. sm.registerConsumer("ban.kick", (sc, in) -> {
  14. ((ServerPlayerEntity) in[0].get(sc)).connection.disconnect(new StringTextComponent(in[1].getString(sc)));
  15. });
  16. sm.registerConsumer("ban.add", (sc, in) -> {
  17. GameProfile gp = server.getPlayerProfileCache().getProfileByUUID(getUUID(in[0].get(sc)));
  18. String reason = in[1].getString(sc);
  19. String banner = in[2].getString(sc);
  20. ProfileBanEntry entry;
  21. if(in.length >= 4) {
  22. GregorianCalendar calender = (GregorianCalendar) in[3].get(sc);
  23. Date d = new Date(calender.getTimeInMillis());
  24. entry = new ProfileBanEntry(gp, null, banner, d, reason);
  25. } else {
  26. entry = new ProfileBanEntry(gp, null, banner, null, reason);
  27. }
  28. server.getPlayerList().getBannedPlayers().addEntry(entry);
  29. });
  30. sm.registerConsumer("ban.remove", (sc, in) -> {
  31. GameProfile gp = server.getPlayerProfileCache().getProfileByUUID(getUUID(in[0].get(sc)));
  32. server.getPlayerList().getBannedPlayers().removeEntry(gp);
  33. });
  34. }
  35. }