This is just a piece of it. Don't flame me.
You must have [Only registered and activated users can see links. ]
Code:
package server.model.players.skills.Firemaking;
import java.util.HashMap;
import server.Server;
import server.event.*;
import server.model.players.Client;
import server.model.players.Player;
public class FiremakingManager {
/**
*@author Gooroo
*/
private static long lastLight;
static int expMultiply = 25;
public boolean lightingLog;
private Client c;
private Player player;
public FiremakingManager(Client client) {
super();
this.c = client;
}
//Done
public enum Firemake {
//logID xp levelReq obj
NORMAL(1511, 40, 1, 2732),
OAK(1521, 60, 15, 2732),
WILLOW(1519, 90, 30, 2732),
MAPLE(1517, 135, 45, 2732),
YEW(1515, 203, 60, 2732),
MAGIC(1513, 304, 75, 2732),
RED(7404, 50, 1, 11406),
GREEN(7405, 50, 1, 11405),
BLUE(7406, 50, 1, 11404);
private int log, requiredLevel, object;
private double experience;
private static HashMap<Integer, Firemake> logs = new HashMap<Integer, Firemake>();
private Firemake(int log, double experience, int requiredLevel, int object) {
this.log = log;
this.requiredLevel = requiredLevel;
this.object = object;
this.experience = experience;
}
static {
for (Firemake firemake : Firemake.values()) {
logs.put(firemake.log, firemake);
}
}
public int getLog() {
return log;
}
public int getRequiredLevel() {
return requiredLevel;
}
public int getObject() {
return object;
}
public double getExperience() {
return experience;
}
public static Firemake forId(int log) {
return logs.get(log);
}
}
public static boolean isLog(int id) {
return Firemake.forId(id) != null;
}
Firemake firemake;
public void lightFire(int id) {
firemake = Firemake.forId(id);
try {
if (firemake != null) {
if(System.currentTimeMillis() - lastLight > 2500){//time (in seconds)
if(c.playerLevel[c.playerFiremaking] >= firemake.getRequiredLevel()){
lastLight = System.currentTimeMillis();
c.startAnimation(733);
c.getPA().walkTo(lightingLog == true ? -1 : 1, 0);
c.sendMessage("You attempt to light a fire.");
c.getPA().object(firemake.getObject(), c.getX(), c.getY(), 0, 10);
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
int timer = 1;
public void execute(CycleEventContainer container) {
if (timer == 0) {
container.stop();
}
timer--;
}
public void stop() {
//Server.itemHandler.createGroundItem(c, 592, x, y, 0,1, c.playerId);
c.getPA().object(-1, c.getX(), c.getY(), 0, 10);
this.stop();
}
}, 300);
} else {
c.getDH().sendStatement("You need a Firemaking level of "+firemake.getRequiredLevel()+" to light this.");
}
}
} else {
System.out.println("Firemaking has nulled out - please do something about it.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Import the following into UseItem.java:
Code:
import server.model.players.skills.Firemaking.FiremakingManager;
import server.model.players.skills.Firemaking.FiremakingManager.Firemake;
Add this somewhere in UseItem.java:
Code:
private static Firemake firemake;
Still in UseItem
Find this:
Code:
public static void ItemonItem(Client c, int itemUsed, int useWith) {
And when you see an else if statement like:
Code:
} else if (Arrows.darts(itemUsed, useWith)) {
Arrows.makeDarts(c, itemUsed, useWith);
Under it add:
Code:
} else if (useWith == 590 || itemUsed == 590) {
int logId = (useWith == 590 ? itemUsed : useWith);
c.getfiremaking().lightFire(logId);