Example #1
0
  @Override
  public boolean signUse(Sign sign, MinigamePlayer player) {
    Minigame mgm = plugin.mdata.getMinigame(sign.getLine(2));
    if (mgm != null) {
      boolean invOk = true;
      boolean fullInv;
      boolean moneyBet = sign.getLine(3).startsWith("$");

      if (plugin.getConfig().getBoolean("requireEmptyInventory")) {
        fullInv = true;
        ItemStack[] contents = player.getPlayer().getInventory().getContents();
        for (int i = 0; i < contents.length; ++i) {
          // Non money bets can hold an item
          if (!moneyBet && i == player.getPlayer().getInventory().getHeldItemSlot()) {
            continue;
          }

          if (contents[i] != null) {
            invOk = false;
            break;
          }
        }

        for (ItemStack item : player.getPlayer().getInventory().getArmorContents()) {
          if (item != null && item.getType() != Material.AIR) {
            invOk = false;
            break;
          }
        }
      } else {
        fullInv = false;
        invOk =
            (moneyBet
                ? player.getPlayer().getItemInHand().getType() == Material.AIR
                : player.getPlayer().getItemInHand().getType() != Material.AIR);
      }

      if (invOk) {
        if (mgm.isEnabled()
            && (!mgm.getUsePermissions()
                || player
                    .getPlayer()
                    .hasPermission("minigame.join." + mgm.getName(false).toLowerCase()))) {
          if (mgm.isSpectator(player)) {
            return false;
          }

          if (!sign.getLine(3).startsWith("$")) {
            plugin.pdata.joinMinigame(player, plugin.mdata.getMinigame(sign.getLine(2)), true, 0.0);
          } else {
            if (plugin.hasEconomy()) {
              Double bet = Double.parseDouble(sign.getLine(3).replace("$", ""));
              plugin.pdata.joinMinigame(
                  player, plugin.mdata.getMinigame(sign.getLine(2)), true, bet);
              return true;
            } else {
              player.sendMessage(
                  ChatColor.RED
                      + "[Minigames] "
                      + ChatColor.WHITE
                      + MinigameUtils.getLang("minigame.error.noVault"));
            }
          }
        } else if (!mgm.isEnabled()) {
          player.sendMessage(
              ChatColor.AQUA
                  + "[Minigames] "
                  + ChatColor.WHITE
                  + MinigameUtils.getLang("minigame.error.notEnabled"));
        } else if (mgm.getUsePermissions()) {
          player.sendMessage(
              ChatColor.AQUA
                  + "[Minigames] "
                  + ChatColor.WHITE
                  + MinigameUtils.formStr(
                      "minigame.error.noPermission",
                      "minigame.join." + mgm.getName(false).toLowerCase()));
        }
      } else if (!moneyBet) {
        if (fullInv && player.getPlayer().getItemInHand().getType() != Material.AIR) {
          player.sendMessage(
              ChatColor.AQUA
                  + "[Minigames] "
                  + ChatColor.WHITE
                  + MinigameUtils.getLang("sign.emptyInv"));
        } else {
          player.sendMessage(
              ChatColor.RED
                  + "[Minigames] "
                  + ChatColor.WHITE
                  + MinigameUtils.getLang("sign.bet.noBet"));
        }
      } else {
        if (fullInv) {
          player.sendMessage(
              ChatColor.AQUA
                  + "[Minigames] "
                  + ChatColor.WHITE
                  + MinigameUtils.getLang("sign.emptyInv"));
        } else {
          player.sendMessage(
              ChatColor.AQUA
                  + "[Minigames] "
                  + ChatColor.WHITE
                  + MinigameUtils.getLang("sign.emptyHand"));
        }
      }
    } else {
      player.sendMessage(
          ChatColor.RED
              + "[Minigames] "
              + ChatColor.WHITE
              + MinigameUtils.getLang("minigame.error.noMinigame"));
    }
    return false;
  }
Example #2
0
 @Override
 public String getUsePermissionMessage() {
   return MinigameUtils.getLang("sign.bet.usePermission");
 }