コード例 #1
0
ファイル: CommandListener.java プロジェクト: bgeaman/MyChunks
  /**
   * Removes ownership of the current Chunk from the Player
   *
   * @param player The Player selling the Chunk
   */
  public static void sell(Player player) {
    // Cancel if the Player does not have permission to use the command
    if (!MyChunks.hasPermission(player, "own")) {
      player.sendMessage(permissionMsg);
      return;
    }

    // Retrieve the OwnedChunk that the Player is in
    String world = player.getWorld().getName();
    Chunk chunk = player.getLocation().getBlock().getChunk();
    int x = chunk.getX();
    int z = chunk.getZ();
    OwnedChunk ownedChunk = MyChunks.findOwnedChunk(world, x, z);

    // Cancel if the Chunk is not owned
    if (ownedChunk == null) {
      player.sendMessage(MyChunks.doNotOwnMsg);
      return;
    }

    // Cancel if the OwnedChunk is owned by someone else
    if (!ownedChunk.owner.equals(player.getName()))
      if (MyChunks.hasPermission(player, "admin")) Econ.sell(player, ownedChunk.owner);
      else {
        player.sendMessage(MyChunks.doNotOwnMsg);
        return;
      }
    else Econ.sell(player);

    MyChunks.removeOwnedChunk(world, x, z);
  }
コード例 #2
0
ファイル: CommandListener.java プロジェクト: bgeaman/MyChunks
 /**
  * Displays the MyChunks Help Page to the given Player
  *
  * @param Player The Player needing help
  */
 public static void sendHelp(Player player) {
   player.sendMessage("§e     MyChunks Help Page:");
   player.sendMessage(
       "§2/chunk buy§b Purchase the current chunk for " + Econ.format(Econ.buyPrice));
   player.sendMessage("§2/chunk sell§b Sell the current chunk for " + Econ.format(Econ.sellPrice));
   player.sendMessage("§2/chunk list§b List locations of owned Chunks");
   player.sendMessage("§2/chunk info§b List Owner and CoOwners of current Chunk");
   player.sendMessage("§2/chunk clear§b Sell all owned Chunks");
   player.sendMessage("§2/chunk coowner [Action] [Type] [Name]");
   player.sendMessage("§bAction = 'add' or 'remove'");
   player.sendMessage("§bType = 'player' or 'group'");
   player.sendMessage("§bName = The group name or the Player's name");
 }
コード例 #3
0
ファイル: CommandListener.java プロジェクト: bgeaman/MyChunks
  /**
   * Removes all the Chunks that are owned by the given Player A Chunk is owned buy a Player if the
   * owner field is the Player's name
   *
   * @param player The name of the Player
   */
  public static void clear(Player player) {
    String name = player.getName();

    // Iterate through all OwnedChunks
    for (int i = 0; i < 100; i++)
      for (int j = 0; j < 100; j++) {
        LinkedList<OwnedChunk> chunkList = (LinkedList<OwnedChunk>) MyChunks.matrix[i][j];
        if (chunkList != null) {
          Iterator itr = chunkList.iterator();
          while (itr.hasNext()) {
            OwnedChunk ownedChunk = (OwnedChunk) itr.next();

            // Sell the Chunk if it is owned by the given Player
            if (ownedChunk.owner.equals(name)) {
              itr.remove();
              Econ.sell(player);
            }
          }

          // Delete the ChunkList if it is empty
          if (chunkList.isEmpty()) MyChunks.matrix[i][j] = null;
        }
      }

    // Reset the ChunkCounter of the Player to 0
    MyChunks.chunkCounter.put(player.getName(), 0);

    MyChunks.save();
  }
コード例 #4
0
ファイル: CommandListener.java プロジェクト: bgeaman/MyChunks
  /**
   * Gives ownership of the current Chunk to the Player
   *
   * @param player The Player buying the Chunk
   */
  public static void buy(Player player) {
    // Cancel if the Player does not have permission to use the command
    if (!MyChunks.hasPermission(player, "own")) {
      player.sendMessage(permissionMsg);
      return;
    }

    // Retrieve the OwnedChunk that the Player is in
    Chunk chunk = player.getLocation().getBlock().getChunk();
    String world = player.getWorld().getName();
    int x = chunk.getX();
    int z = chunk.getZ();
    OwnedChunk ownedChunk = MyChunks.getOwnedChunk(world, x, z);

    // If the owner of the OwnedChunk is not blank then the Chunk is already claimed
    if (ownedChunk.owner != null) {
      player.sendMessage(claimedMsg);
      return;
    }

    ownedChunk.owner = player.getName();

    int limit = MyChunks.getOwnLimit(player);
    int owned = 0;

    // Don't check how many are owned if the Player is not limited
    if (limit != -1) {
      // Retrieve the ChunkCounter value of the Player
      Object object = MyChunks.chunkCounter.get(player.getName());
      if (object != null) owned = (Integer) object;

      // Cancel if the Player owns their maximum limit
      if (owned >= limit) {
        player.sendMessage(limitMsg);
        return;
      }
    }

    // Charge the Player only if they don't have the 'chunkown.free' node
    if (MyChunks.hasPermission(player, "free")) player.sendMessage(buyFreeMsg);
    else if (!Econ.buy(player)) {
      // Delete the OwnedChunk because the Player could not afford it
      MyChunks.removeOwnedChunk(world, x, z);
      return;
    }

    // Increment the ChunkCounter of the Player
    MyChunks.chunkCounter.put(ownedChunk.owner, owned + 1);

    markCorners(chunk);
    MyChunks.save();
  }
コード例 #5
0
  private void setupVault(PluginManager pm) {
    if (pm.getPlugin("Vault") == null) {
      MessageSender.getInstance().log("Vault was not found, economy features are not available.");
    } else {
      RegisteredServiceProvider<Economy> econProvider =
          getServer().getServicesManager().getRegistration(Economy.class);
      if (econProvider != null) {
        Econ.getInstance().init(econProvider.getProvider());
      }

      RegisteredServiceProvider<Permission> permProvider =
          getServer().getServicesManager().getRegistration(Permission.class);
      if (permProvider != null) {
        Perms.getInstance().init(permProvider.getProvider());
      }
    }
  }
コード例 #6
0
  @Override
  public void onDisable() {
    try {
      Bukkit.getScheduler().cancelTasks(this);

      if (plugin == null) {
        return;
      }

      Vanilla.removeCustomRecipes();

      Furnaces.save();
      Furnaces.clean();

      BrewingStands.save();
      BrewingStands.clean();

      Workbenches.clean();
      Players.clean();
      Vanilla.clean();

      recipes.clean();
      recipes = null;

      recipeBooks.clean();
      recipeBooks = null;

      events.clean();
      events = null;

      Settings.clean();

      Econ.getInstance().clean();
      Perms.getInstance().clean();

      if (metrics != null) {
        metrics.stop();
        metrics = null;
      }

      plugin = null;
    } catch (Throwable e) {
      MessageSender.getInstance().error(null, e, null);
    }
  }