spenk

movecraft secret updating 4.20.14.93.2

Mar 4th, 2012
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.04 KB | None | 0 0
  1.  
  2. import java.io.File;
  3. import java.text.DateFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.logging.Logger;
  7.  
  8. public class MoveCraft extends Plugin
  9. {
  10.   PropertiesFile properties;
  11.   static final String pluginName = "MoveCraft";
  12.   static final String version = "0.7";
  13.   static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  14.   public static Logger log = Logger.getLogger("Minecraft");
  15.   final MoveCraft.MoveCraftListener listener;
  16.  
  17.   public MoveCraft()
  18.   {
  19.     this.listener = new MoveCraft.MoveCraftListener();
  20.   }
  21.   public static void consoleSay(String msg) {
  22.     System.out.println(getDateTime() + " [INFO] " + "MoveCraft" + " " + msg);
  23.   }
  24.  
  25.   public void loadProperties()
  26.   {
  27.     File dir = new File("movecraft");
  28.     if (!dir.exists()) dir.mkdir();
  29.  
  30.     CraftType.loadTypes(dir);
  31.     CraftType.saveTypes(dir);
  32.   }
  33.  
  34.   public void enable()
  35.   {
  36.     loadProperties();
  37.     log.info("Movecraft 0.7 plugin enabled");
  38.   }
  39.  
  40.   public void disable()
  41.   {
  42.     log.info("MoveCraft 0.7 plugin disabled");
  43.   }
  44.  
  45.   public void initialize()
  46.   {
  47.     etc.getLoader().addListener(PluginLoader.Hook.BLOCK_CREATED, this.listener, this, PluginListener.Priority.CRITICAL);
  48.  
  49.     etc.getLoader().addListener(PluginLoader.Hook.DISCONNECT, this.listener, this, PluginListener.Priority.MEDIUM);
  50.     etc.getLoader().addListener(PluginLoader.Hook.PLAYER_MOVE, this.listener, this, PluginListener.Priority.MEDIUM);
  51.     etc.getLoader().addListener(PluginLoader.Hook.COMMAND, this.listener, this, PluginListener.Priority.MEDIUM);
  52.     etc.getLoader().addListener(PluginLoader.Hook.ARM_SWING, this.listener, this, PluginListener.Priority.MEDIUM);
  53.     etc.getLoader().addListener(PluginLoader.Hook.BLOCK_RIGHTCLICKED, this.listener, this, PluginListener.Priority.MEDIUM);
  54.  
  55.     etc.getLoader().addListener(PluginLoader.Hook.SIGN_CHANGE, this.listener, this, PluginListener.Priority.MEDIUM);
  56.  
  57.     BlocksInfo.loadBlocksInfo();
  58.   }
  59.  
  60.   public static String getDateTime()
  61.   {
  62.     return dateFormat.format(new Date());
  63.   }
  64.  
  65.   class MoveCraftListener extends PluginListener
  66.   {
  67.     MoveCraftListener()
  68.     {
  69.     }
  70.  
  71.     public void onPlayerMove(Player player, Location from, Location to)
  72.     {
  73.       Craft craft = Craft.getCraft(player);
  74.  
  75.       if (craft != null) {
  76.         craft.setSpeed(1);
  77.  
  78.         if ((craft.isOnBoard) && (!craft.isOnCraft(player, false))) {
  79.           player.sendMessage("§eYou get off the " + craft.name);
  80.           player.sendMessage("§7type /" + craft.name + " remote for remote control");
  81.           craft.isOnBoard = false;
  82.           craft.haveControl = false;
  83.         }
  84.         else if ((!craft.isOnBoard) && (craft.isOnCraft(player, false))) {
  85.           player.sendMessage("§eWelcome on board");
  86.           craft.isOnBoard = true;
  87.           craft.haveControl = true;
  88.         }
  89.       }
  90.     }
  91.  
  92.     public boolean onSignChange(Player player, Sign sign)
  93.     {
  94.       String craftTypeName = sign.getText(0).trim().toLowerCase();
  95.  
  96.       if (craftTypeName.startsWith("[")) {
  97.         craftTypeName = craftTypeName.substring(1, craftTypeName.length() - 1);
  98.       }
  99.  
  100.       CraftType craftType = CraftType.getCraftType(craftTypeName);
  101.  
  102.       if (craftType != null)
  103.       {
  104.         sign.setText(0, "[§1" + craftType.name + "§0]");
  105.  
  106.         String name = sign.getText(1);
  107.  
  108.         if (name.length() > 0) {
  109.           sign.setText(1, "§e" + name);
  110.         }
  111.         return false;
  112.       }
  113.  
  114.       return false;
  115.     }
  116.  
  117.     public boolean onBlockCreate(Player player,Block blockPlaced,Block blockClicked,int itemInHand){
  118.       Craft playerCraft = Craft.getCraft(player);
  119.       if (blockPlaced != null){
  120.         Craft craft = Craft.getCraft(blockPlaced.getX(), blockPlaced.getY(), blockPlaced.getZ());
  121.         if (craft != null)
  122.         {
  123.           if ((blockPlaced.getType() == 321) || (blockPlaced.getType() == 323) || (blockPlaced.getType() == 324) || (blockPlaced.getType() == 330))
  124.           {
  125.             player.sendMessage("§eplease release the " + craft.type.name + " to add this item");
  126.             return true;
  127.           }
  128.  
  129.           craft.addBlock(blockPlaced);
  130.         }
  131.  
  132.         if (playerCraft != null) {
  133.           playerCraft.blockPlaced = true;
  134.         }
  135.       }
  136.     return false;
  137.     }
  138.     //TODO
  139.     public boolean onBlockRightClick(Player player,Block blockClicked,Item itemInHand){
  140.          Craft playerCraft = Craft.getCraft(player);
  141.       if ((blockClicked.getType() == 63) || (blockClicked.getType() == 68))
  142.       {
  143.         if (playerCraft == null)
  144.         {
  145.           Sign sign = (Sign)blockClicked.getWorld().getComplexBlock(blockClicked.getX(), blockClicked.getY(), blockClicked.getZ());
  146.  
  147.           if (sign.getText(0).trim().equals("")) return false;
  148.  
  149.           String craftTypeName = sign.getText(0).trim();
  150.  
  151.           craftTypeName = craftTypeName.replaceAll("§.", "");
  152.  
  153.           if (craftTypeName.startsWith("[")) {
  154.             craftTypeName = craftTypeName.substring(1, craftTypeName.length() - 1);
  155.           }
  156.  
  157.           CraftType craftType = CraftType.getCraftType(craftTypeName);
  158.  
  159.           if (craftType != null)
  160.           {
  161.             String name = sign.getText(1).replaceAll("§.", "");
  162.  
  163.             if (name.trim().equals("")) {
  164.               name = null;
  165.             }
  166.  
  167.             if (!player.canUseCommand("/movecraft"))
  168.             {
  169.               player.sendMessage("§cyou are not allowed to take control of that " + craftType.name + " !");
  170.               return true;
  171.             }
  172.  
  173.             int x = blockClicked.getX();
  174.             int y = blockClicked.getY();
  175.             int z = blockClicked.getZ();
  176.  
  177.             int direction = blockClicked.getWorld().getBlockData(x, y, z);
  178.  
  179.             x += (direction == 5 ? -1 : direction == 4 ? 1 : 0);
  180.             z += (direction == 3 ? -1 : direction == 2 ? 1 : 0);
  181.             createCraft(player, craftType, x, y, z, name);
  182.             return true;
  183.           }
  184.  
  185.           return false;
  186.         }
  187.  
  188.         releaseCraft(player, playerCraft);
  189.       }
  190.  
  191.       return false;
  192.     }
  193.  
  194.     public void onDisconnect(Player player)
  195.     {
  196.       Craft craft = Craft.getCraft(player);
  197.  
  198.       if (craft != null)
  199.         Craft.removeCraft(craft);
  200.     }
  201. //TODO
  202.     public void onArmSwing(Player player)
  203.     {
  204.       Craft craft = Craft.getCraft(player);
  205.  
  206.       if (craft != null)
  207.       {
  208.         if (craft.blockPlaced) {
  209.           craft.blockPlaced = false;
  210.           return;
  211.         }
  212.  
  213.         if (craft.blockCount <= 0)
  214.         {
  215.           releaseCraft(player, craft);
  216.           return;
  217.         }
  218.  
  219.         int item = player.getItemInHand();
  220.  
  221.         if ((!craft.haveControl) || (item == 256) || (item == 257) || (item == 258) || (item == 269) || (item == 270) || (item == 271) || (item == 273) || (item == 274) || (item == 275) || (item == 277) || (item == 278) || (item == 279) || (item == 284) || (item == 285) || (item == 286) || ((item >= 290) && (item <= 294)) || (item == 336))
  222.         {
  223.           return;
  224.         }
  225.  
  226.         if (System.currentTimeMillis() - craft.lastMove < 200.0D) return;
  227.  
  228.         craft.setSpeed(craft.speed - (int)((System.currentTimeMillis() - craft.lastMove) / 500L));
  229.  
  230.         if (craft.speed <= 0) craft.speed = 1;
  231.  
  232.         float rotation = 3.141593F * player.getRotation() / 180.0F;
  233.  
  234.         float nx = -(float)Math.sin(rotation);
  235.         float nz = (float)Math.cos(rotation);
  236.  
  237.         int dx = (Math.abs(nx) >= 0.5D ? 1 : 0) * (int)Math.signum(nx);
  238.         int dz = (Math.abs(nz) > 0.5D ? 1 : 0) * (int)Math.signum(nz);
  239.  
  240.         int dy = 0;
  241.  
  242.         if ((craft.type.canFly) || (craft.type.canDive))
  243.         {
  244.           float p = player.getPitch();
  245.  
  246.           dy = -(Math.abs(player.getPitch()) >= 25.0F ? 1 : 0) * (int)Math.signum(p);
  247.  
  248.           if (Math.abs(player.getPitch()) >= 75.0F) {
  249.             dx = 0;
  250.             dz = 0;
  251.           }
  252.  
  253.         }
  254.  
  255.         if ((craft.type.canDive) && (!craft.type.canFly) && (craft.waterLevel <= 0) && (dy > 0))
  256.         {
  257.           dy = 0;
  258.         }
  259.  
  260.         while (!craft.canMove(dx, dy, dz))
  261.         {
  262.           if (craft.speed == 1)
  263.           {
  264.             if ((craft.type.canFly) && (dy >= 0)) {
  265.               dx = 0; dz = 0; dy = 1;
  266.               if (craft.canMove(dx, dy, dz))
  267.                 break;
  268.             }
  269.             player.sendMessage("§cthe " + craft.name + " won't go any further");
  270.             return;
  271.           }
  272.  
  273.           craft.setSpeed(craft.speed - 1);
  274.         }
  275.  
  276.         craft.move(dx, dy, dz);
  277.  
  278.         craft.setSpeed(craft.speed + 1);
  279.       }
  280.     }
  281. //TODO
  282.     private void createCraft(Player player, CraftType craftType, int x, int y, int z, String name)
  283.     {
  284.       Craft craft = Craft.getCraft(player);
  285.       if (craft != null) {
  286.         releaseCraft(player, craft);
  287.       }
  288.       craft = new Craft(craftType, player, name);
  289.  
  290.       if (!CraftBuilder.detect(craft, x, y, z)) {
  291.         return;
  292.       }
  293.       Craft.addCraft(craft);
  294.       player.sendMessage("§7Swing your arm where you want to go (no tools)");
  295.       onPlayerMove(player, player.getLocation(), player.getLocation());
  296.     }
  297. //TODO
  298.     private void releaseCraft(Player player, Craft craft)
  299.     {
  300.       if (craft != null)
  301.       {
  302.         player.sendMessage("§e" + craft.type.sayOnRelease);
  303.         Craft.removeCraft(craft);
  304.       }
  305.       else
  306.       {
  307.         player.sendMessage("§eYou don't have anything to release");
  308.       }
  309.     }
  310. //TODO
  311.     private boolean processCommand(CraftType craftType, Player player, String[] split) {
  312.       Craft craft = Craft.getCraft(player);
  313.  
  314.       if (split.length >= 2)
  315.       {
  316.         if (split[1].equalsIgnoreCase(craftType.driveCommand))
  317.         {
  318.           createCraft(player, craftType, (int)Math.floor(player.getX()), (int)Math.floor(player.getY() - 1.0D), (int)Math.floor(player.getZ()), null);
  319.  
  320.           return true;
  321.         }
  322.         if (split[1].equalsIgnoreCase("setspeed"))
  323.         {
  324.           if (craft == null) {
  325.             player.sendMessage("§eYou don't have any " + craftType.name);
  326.             return true;
  327.           }
  328.  
  329.           int speed = Math.abs(Integer.parseInt(split[2]));
  330.  
  331.           if ((speed < 1) || (speed > craftType.maxSpeed)) {
  332.             player.sendMessage("§cAllowed speed between 1 and " + craftType.maxSpeed);
  333.             return true;
  334.           }
  335.  
  336.           craft.setSpeed(speed);
  337.           player.sendMessage("§e" + craft.name + "'s speed set to " + craft.speed);
  338.  
  339.           return true;
  340.         }
  341.         if (split[1].equalsIgnoreCase("setname"))
  342.         {
  343.           if (craft == null) {
  344.             player.sendMessage("§eYou don't have any " + craftType.name);
  345.             return true;
  346.           }
  347.  
  348.           craft.name = split[2];
  349.           player.sendMessage("§e" + craft.name + "'s name set to " + craft.name);
  350.           return true;
  351.         }
  352.         if (split[1].equalsIgnoreCase("size"))
  353.         {
  354.           if (craft == null) {
  355.             player.sendMessage("§eYou don't have any " + craftType.name);
  356.             return true;
  357.           }
  358.  
  359.           player.sendMessage("§eThe " + craft.name + " is built with " + craft.blockCount + " blocks");
  360.           return true;
  361.         }
  362.         if (split[1].equalsIgnoreCase("remote"))
  363.         {
  364.           if (craft == null) {
  365.             player.sendMessage("§eYou don't have any " + craftType.name);
  366.             return true;
  367.           }
  368.  
  369.           if (craft.isOnCraft(player, true)) {
  370.             player.sendMessage("§eYou are on the " + craftType.name + ", remote control not possible");
  371.           } else {
  372.             if (craft.haveControl)
  373.               player.sendMessage("§eYou switch off the remote controller");
  374.             else {
  375.               player.sendMessage("§eYou switch on the remote controller");
  376.             }
  377.  
  378.             craft.haveControl = (!craft.haveControl);
  379.           }
  380.  
  381.           return true;
  382.         }
  383.         if (split[1].equalsIgnoreCase("release"))
  384.         {
  385.           releaseCraft(player, craft);
  386.           return true;
  387.         }
  388.  
  389.         if (split[1].equalsIgnoreCase("info"))
  390.         {
  391.           player.sendMessage("§a" + craftType.name);
  392.           player.sendMessage("§emin size : " + craftType.minBlocks);
  393.           player.sendMessage("§emax size : " + craftType.maxBlocks);
  394.           player.sendMessage("§espeed : " + craftType.maxSpeed);
  395.  
  396.           if (craftType.canFly) {
  397.             player.sendMessage("§ethe " + craftType.name + " can fly");
  398.           }
  399.           if (craftType.canNavigate) {
  400.             player.sendMessage("§ethe " + craftType.name + " can navigate on both water and lava");
  401.           }
  402.           if (craftType.canDive) {
  403.             player.sendMessage("§ethe " + craftType.name + " can dive");
  404.           }
  405.           if (craftType.flyBlockType != 0) {
  406.             player.sendMessage("§crequirement : " + craftType.flyBlockPercent + "%" + " of " + craftType.flyBlockName);
  407.           }
  408.  
  409.           return true;
  410.         }
  411.  
  412.       }
  413.  
  414.       player.sendMessage("§aMoveCraft v0.6 commands :");
  415.       player.sendMessage("§e/" + craftType.name + " " + craftType.driveCommand + " : §f" + " " + craftType.driveCommand + " the " + craftType.name);
  416.       player.sendMessage("§e/" + craftType.name + " " + "release : §frelease the " + craftType.name);
  417.       player.sendMessage("§e/" + craftType.name + " " + "remote : §fremote control of the " + craftType.name);
  418.       player.sendMessage("§e/" + craftType.name + " " + "size : §fthe size of the " + craftType.name + " in block");
  419.       player.sendMessage("§e/" + craftType.name + " " + "setname : §fset the " + craftType.name + "'s name");
  420.       player.sendMessage("§e/" + craftType.name + " " + "info : §fdisplays informations about the " + craftType.name);
  421.  
  422.       return true;
  423.     }
  424. //TODO
  425.     public boolean onCommand(Player player, String[] split)
  426.     {
  427.       if ((split[0].equalsIgnoreCase("/reload")) && (player.canUseCommand("/reload"))) {
  428.         MoveCraft.this.loadProperties();
  429.         return false;
  430.       }
  431.       if ((split[0].equalsIgnoreCase("/movecraft")) && (player.canUseCommand("/movecraft"))) {
  432.         if (split.length >= 2) {
  433.           if (split[1].equalsIgnoreCase("types"))
  434.           {
  435.             for (CraftType craftType : CraftType.craftTypes)
  436.             {
  437.               if (craftType.canUse(player).booleanValue()) {
  438.                 player.sendMessage("§e " + craftType.name + " :§f " + craftType.minBlocks + "-" + craftType.maxBlocks + " blocks" + " speed : " + craftType.maxSpeed);
  439.               }
  440.             }
  441.             return true;
  442.           }
  443.  
  444.           if (split[1].equalsIgnoreCase("list"))
  445.           {
  446.             if (Craft.craftList.isEmpty()) {
  447.               player.sendMessage("§7no player controlled craft");
  448.               return true;
  449.             }
  450.  
  451.             for (Craft craft : Craft.craftList)
  452.             {
  453.               player.sendMessage("§e" + craft.name + " controlled by " + Craft.player.getName() + " : " + craft.blockCount + " blocks");
  454.             }
  455.  
  456.             return true;
  457.           }
  458.  
  459.           if (split[1].equalsIgnoreCase("reload"))
  460.           {
  461.             MoveCraft.this.loadProperties();
  462.             player.sendMessage("§econfiguration reloaded");
  463.  
  464.             return true;
  465.           }
  466.         }
  467.  
  468.         player.sendMessage("§aMoveCraft v0.6 commands :");
  469.         player.sendMessage("§e/movecraft types  : §flist the types of craft available");
  470.         player.sendMessage("§e/movecraft list : §flist the current player controled craft");
  471.         player.sendMessage("§e/movecraft reload : §freload config files");
  472.         player.sendMessage("§e/[craft type]  : §fcommands specific to the craft type");
  473.  
  474.         return true;
  475.       }
  476.  
  477.       String craftName = split[0].substring(1);
  478.  
  479.       CraftType craftType = CraftType.getCraftType(craftName);
  480.  
  481.       if (craftType != null)
  482.       {
  483.         if (craftType.canUse(player).booleanValue()) {
  484.           return processCommand(craftType, player, split);
  485.         }
  486.         player.sendMessage("§cyou are not allowed to use this type of craft");
  487.         return true;
  488.       }
  489.  
  490.       return false;
  491.     }
  492.   }
  493. }
Advertisement
Add Comment
Please, Sign In to add comment