Advertisement
Serious07

Unload

Feb 2nd, 2015
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. package ru.Serious07.SeriousCore2.Commands;
  2.  
  3. import java.util.List;
  4.  
  5. import ru.Serious07.SeriousCore2.Hash.Collections;
  6. import ru.Serious07.SeriousCore2.display.Chat;
  7. import net.minecraft.command.ICommand;
  8. import net.minecraft.command.ICommandSender;
  9. import net.minecraft.entity.player.EntityPlayerMP;
  10. import net.minecraft.server.MinecraftServer;
  11.  
  12. public class Unload implements ICommand {
  13.  
  14. Chat ch = new Chat();
  15. Collections cl = new Collections();
  16.  
  17. @Override
  18. public int compareTo(Object arg0) {
  19. return 0;
  20. }
  21.  
  22. @Override
  23. public String getCommandName() {
  24. return "unload";
  25. }
  26.  
  27. @Override
  28. public String getCommandUsage(ICommandSender p_71518_1_) {
  29. return "/unload";
  30. }
  31.  
  32. @Override
  33. public List getCommandAliases() {
  34. return null;
  35. }
  36.  
  37. @Override
  38. public void processCommand(ICommandSender sender, String[] args) {
  39. if(sender instanceof EntityPlayerMP){ // Если команду выполнил игрок
  40. String permission = "UNLOAD";
  41. if(cl.CheckGroupPermission(cl.GetPlayerGroup(cl.GetPlayerId(((EntityPlayerMP) sender).getDisplayName())), permission)) {
  42. MinecraftServer minecraftserver = MinecraftServer.getServer();
  43. int length = minecraftserver.worldServers.length;
  44.  
  45. int count = 0;
  46.  
  47. for(int i=0; i<length; i++){
  48. count += minecraftserver.worldServers[i].theChunkProviderServer.getLoadedChunkCount();
  49. }
  50.  
  51. // Выполнить команду на сохранение здесь
  52. MinecraftServer.getServer().getCommandManager().executeCommand(MinecraftServer.getServer(), "save-all");
  53.  
  54. ch.SendMessageToPlayer((EntityPlayerMP) sender, "Сейчас подгружено " + count);
  55. ch.SendMessageToPlayer((EntityPlayerMP) sender, "Выгружаем чанки!");
  56.  
  57. for(int i=0; i<length; i++){
  58.  
  59. boolean flag = MinecraftServer.getServer().worldServers[i].levelSaving;
  60.  
  61. minecraftserver.worldServers[i].levelSaving = true;
  62. minecraftserver.worldServers[i].theChunkProviderServer.unloadAllChunks();
  63. minecraftserver.worldServers[i].theChunkProviderServer.unloadQueuedChunks();
  64. ch.SendMessageToPlayer((EntityPlayerMP) sender, (i + 1) + " из " + length + " " + MinecraftServer.getServer().worldServers[i].theChunkProviderServer.canSave());
  65. minecraftserver.worldServers[i].levelSaving = flag;
  66. }
  67.  
  68. count = 0;
  69.  
  70. for(int i=0; i<length; i++){
  71. count += minecraftserver.worldServers[i].theChunkProviderServer.getLoadedChunkCount();
  72. }
  73.  
  74. ch.SendMessageToPlayer((EntityPlayerMP) sender, "Чанки успешно выгружены! Подгружено: " + count);
  75. }
  76. }
  77. }
  78.  
  79. @Override
  80. public boolean canCommandSenderUseCommand(ICommandSender p_71519_1_) {
  81. return true;
  82. }
  83.  
  84. @Override
  85. public List addTabCompletionOptions(ICommandSender p_71516_1_,
  86. String[] p_71516_2_) {
  87. return null;
  88. }
  89.  
  90. @Override
  91. public boolean isUsernameIndex(String[] p_82358_1_, int p_82358_2_) {
  92. return false;
  93. }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement