OreIsland.java
Code:
package com.exoria.game.player.controlers;
import com.exoria.Settings;
import com.exoria.game.Animation;
import com.exoria.game.WorldObject;
import com.exoria.game.WorldTile;
import com.exoria.game.player.Player;
import com.exoria.game.player.Skills;
import com.exoria.game.tasks.WorldTask;
import com.exoria.game.tasks.WorldTasksManager;
public class OreIsland extends Controller {
/**
* @author aksel
*/
@Override
public void start() {
if (player.getSkills().getLevel(Skills.MINING) < 30) {
player.getSkills().setXp(Skills.MINING, Skills.getXPForLevel(30));
}
player.setNextWorldTile(new WorldTile(Settings.ORE_ISLAND));
player.out("You have been sentenced to mine " + player.getOretomine()
+ " coal ore. You cannot leave until you finish the task.");
player.out("Mine the ore and put it in the chest, click the portal to leave.");
}
@Override
public boolean processObjectClick1(WorldObject object) {
int id = object.getId();
if (id == 2045) {
player.getBank().depositAllEquipment(false);
player.getBank().depositAllInventory(false);
return true;
}
if (id == 14214) {
if (!hasPickaxe(player)) {
player.getInventory().addItem(1267, 1);
return false;
}
player.out("You already have a pickaxe.");
return true;
}
if (id == 2473) {
if (player.getOretomine() < 1) {
player.setOretomine(0);
player.setNextWorldTile(new WorldTile(Settings.HOME_LOCATION));
player.getControlerManager().forceStop();
return true;
}
player.out("You can't leave until you mine "
+ player.getOretomine() + " more ores.");
}
if (id == 2709) {
if (player.getInventory().containsOneItem(453)) {
player.setOretomine(player.getOretomine()
- player.getInventory().getAmountOf(453));
player.out("You deposit "
+ player.getInventory().getAmountOf(453)
+ " ores, reducing your total goal to "
+ player.getOretomine() + ".");
player.getInventory().deleteItem(453,
player.getInventory().getAmountOf(453));
return true;
}
player.out("You have no ore.");
}
return true;
}
public boolean hasPickaxe(Player player) {
if (player.getInventory().containsOneItem(15259, 1275, 1271, 1273,
1269, 1267, 1265))
return true;
int weaponId = player.getEquipment().getWeaponId();
if (weaponId == -1)
return false;
switch (weaponId) {
case 1265:// Bronze
case 1267:// Iron
case 1269:// Steel
case 1273:// Mithril
case 1271:// Adamant
case 1275:// Rune
case 15259:// Dragon
return true;
default:
return false;
}
}
@Override
public boolean sendDeath() {
WorldTasksManager.schedule(new WorldTask() {
int loop;
@Override
public void run() {
player.stopAll();
if (loop == 0) {
player.setNextAnimation(new Animation(836));
} else if (loop == 1) {
player.getPackets().sendGameMessage(
"Oh dear, you have died.");
} else if (loop == 3) {
player.setNextAnimation(new Animation(-1));
player.reset();
player.setCanPvp(false);
player.setNextWorldTile(new WorldTile(Settings.ORE_ISLAND));
player.unlock();
}
loop++;
}
}, 0, 1);
return false;
}
@Override
public boolean login() {
player.out("You cannot leave until you mine " + player.getOretomine()
+ " more coal ores.");
return false;
}
@Override
public boolean logout() {
player.out("You cannot leave until you mine " + player.getOretomine()
+ " more coal ores.");
return false;
}
@Override
public boolean processMagicTeleport(WorldTile toTile) {
player.out("You cannot leave until you mine " + player.getOretomine()
+ " more coal ores.");
return false;
}
@Override
public boolean processItemTeleport(WorldTile toTile) {
player.out("You cannot leave until you mine " + player.getOretomine()
+ " more coal ores.");
return false;
}
}
Use with this command.
Code:
case "oreisland":
int amount43 = Integer.valueOf(cmd[2]);
name = String.valueOf(cmd[1]);
target = World.getPlayerByDisplayName(name);
target.setOretomine(amount43);
target.getControlerManager().startControler("OreIsland");
return true;