/src/riseofdeath/uselesstools.java

https://github.com/RiseOfDeath/uselesstools · Java · 157 lines · 134 code · 16 blank · 7 comment · 15 complexity · 7979e887dbe6665a51c7f744aa13899f MD5 · raw file

  1. package riseofdeath;
  2. import java.util.Random;
  3. import java.util.logging.Logger;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.Chunk;
  6. import org.bukkit.Server;
  7. import org.bukkit.World;
  8. import org.bukkit.command.Command;
  9. import org.bukkit.command.CommandException;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.plugin.PluginManager;
  12. import org.bukkit.plugin.java.JavaPlugin;
  13. import org.bukkit.util.config.Configuration;
  14. public class uselesstools extends JavaPlugin {
  15. public static Logger log;
  16. public static Server server;
  17. private PluginManager pm;
  18. private Configuration config;
  19. public int blocks[]=new int[256];
  20. @Override
  21. public void onDisable() {
  22. // TODO Auto-generated method stub
  23. log.info( getDescription().getName() + " version " + getDescription().getVersion() + " is disabled" );
  24. }
  25. @Override
  26. public void onEnable() {
  27. // TODO Auto-generated method stub
  28. log = Logger.getLogger("Minecraft");
  29. pm = getServer().getPluginManager();
  30. config = getConfiguration();
  31. log.info( getDescription().getName() + " version " + getDescription().getVersion() + " is enabled" );
  32. for(int i=0;i<256;i++)
  33. {
  34. blocks[i]=0;
  35. }
  36. }
  37. @Override
  38. public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args){
  39. if(commandLabel.contains("generate")){
  40. if(sender.isOp()){
  41. sender.sendMessage("Ok, you can do this...");
  42. if(args.length==5){
  43. double work;
  44. double count=0;
  45. double done = 0;
  46. String done_str;
  47. work = (Integer.parseInt(args[3]) - Integer.parseInt(args[1]))* (Integer.parseInt(args[4]) - Integer.parseInt(args[2]));
  48. try{
  49. sender.sendMessage("Starting generation");
  50. for(int i = Integer.parseInt(args[1]);i<=Integer.parseInt(args[3]);i++){
  51. for(int j =Integer.parseInt(args[2]);j<=Integer.parseInt(args[4]);j++){
  52. sender.getServer().getWorld(args[0]).getChunkAt(i, j);
  53. sender.getServer().getWorld(args[0]).unloadChunk(i, j, true, false);
  54. count++;
  55. done = count/work*100;
  56. }
  57. done_str = Double.toString(done);
  58. sender.sendMessage("Now done: " + done_str + "%");
  59. }
  60. sender.sendMessage("Job is done");
  61. }
  62. catch(CommandException e){
  63. sender.sendMessage(e.toString());
  64. }
  65. return true;
  66. }
  67. else{
  68. //no correct arguments
  69. //sender.sendMessage("Wrong arguments. Type <command> <world> <x1> <y1> <x2> <y2>");
  70. return false;
  71. }
  72. }
  73. else{
  74. //player no OP ]:->
  75. sender.sendMessage("Oh... you don't OP, sorry...");
  76. return true;
  77. }
  78. }
  79. if(commandLabel.contains("statistic"))
  80. {
  81. //ïîäñ÷åò êîë-âà áëîêîâ
  82. if(sender.isOp()){
  83. sender.sendMessage("Ok, you can do this...");
  84. double work;
  85. double count=0;
  86. double done = 0;
  87. String done_str;
  88. work = (Integer.parseInt(args[3]) - Integer.parseInt(args[1]))* (Integer.parseInt(args[4]) - Integer.parseInt(args[2]));
  89. if(args.length==5){
  90. try{
  91. sender.sendMessage("Try get statistic...");
  92. for(int i = Integer.parseInt(args[1]);i<=Integer.parseInt(args[3]);i++){
  93. for(int j =Integer.parseInt(args[2]);j<=Integer.parseInt(args[4]);j++){
  94. readblocks(sender.getServer().getWorld(args[0]).getChunkAt(i, j));
  95. sender.getServer().getWorld(args[0]).unloadChunk(i, j, true, false);
  96. count++;
  97. }
  98. done = count/work*100;
  99. done_str = Double.toString(done);
  100. sender.sendMessage("Now done: " + done_str + "%");
  101. }
  102. for(int i=0;i<256;i++)
  103. {
  104. sender.sendMessage("Block " + i + ": " +Integer.toString(blocks[i]));
  105. }
  106. sender.sendMessage("Job is done");
  107. }
  108. catch(CommandException e){
  109. sender.sendMessage(e.toString());
  110. }
  111. return true;
  112. }
  113. else
  114. {
  115. //sender.sendMessage("Wrong arguments. Type <command> <world> <x1> <y1> <x2> <y2>");
  116. return false;
  117. }
  118. }
  119. else
  120. {
  121. sender.sendMessage("Oh... you don't OP, sorry...");
  122. return true;
  123. }
  124. }
  125. return false;
  126. }
  127. boolean readblocks(Chunk chunk)
  128. {
  129. for(int i=0;i<16;i++)
  130. {
  131. for(int j=0;j<16;j++)
  132. {
  133. for(int k=0;k<128;k++)
  134. {
  135. blocks[chunk.getBlock(i, k, j).getTypeId()]++;
  136. }
  137. }
  138. }
  139. return false;
  140. }
  141. }