Kotlin/Java split
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package rs09.game.ai.resource;
|
||||
|
||||
import core.game.node.entity.skill.gather.SkillingResource;
|
||||
import core.game.node.entity.player.Player;
|
||||
import rs09.game.ai.AIPlayer;
|
||||
import core.game.system.task.Pulse;
|
||||
import rs09.game.world.GameWorld;
|
||||
import rs09.game.world.repository.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ResourceAIPActions {
|
||||
|
||||
public static List<AIPlayer> resource_players = null;
|
||||
|
||||
protected SkillingResource resource;
|
||||
|
||||
public static void syncBotThread(final Player player) {
|
||||
if (resource_players == null || resource_players.size() == 0) {
|
||||
return;
|
||||
}
|
||||
for (int aip_index = 0; aip_index < resource_players.size(); aip_index++) {
|
||||
final AIPlayer bot = resource_players.get(aip_index);
|
||||
GameWorld.getPulser().submit(new Pulse(1, bot) {
|
||||
int ticks;
|
||||
int ov;
|
||||
@Override
|
||||
public boolean pulse() {
|
||||
/*if (bot.getInventory().freeSlots() < 1) {
|
||||
//flee(bot);
|
||||
return true;
|
||||
}*/
|
||||
//Inactivity logout timer.
|
||||
if (ticks++ == 5000/* && bot.getWalkingQueue().getQueue().isEmpty()*/) {
|
||||
AIPlayer.deregister(bot.getUid());
|
||||
resource_players.remove(bot);
|
||||
return true;
|
||||
}
|
||||
if (ov++ >= 3) {
|
||||
chopTree(bot);
|
||||
ov = 0;
|
||||
}
|
||||
// ov = 0;
|
||||
System.out.println("ResourceAIPActions" + ov);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean chopTree(final AIPlayer bot) {
|
||||
/*for (GameObject[] o : RegionManager.forId(bot.getLocation().getRegionId()).getPlanes()[0].getObjects()) {
|
||||
for (GameObject obj : o) {
|
||||
if (obj != null) {
|
||||
for (SkillingResource r : SkillingResource.values()) {
|
||||
if (obj.getId() == r.getId()) {
|
||||
Pathfinder.find(bot, obj).walk(bot);
|
||||
bot.sendChat("WE CHOPPIN");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
bot.attack(Repository.getNpcs().get(106));
|
||||
|
||||
// Pulse pulse = new GatheringSkillPulse(bot, node);
|
||||
// bot.getPulseManager().run(new GatheringSkillPulse(bot, node));
|
||||
// pulse.start();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
package rs09.game.ai.resource;
|
||||
|
||||
import core.game.node.entity.player.Player;
|
||||
import rs09.game.ai.resource.task.ResourceTask;
|
||||
import rs09.game.ai.resource.task.ResourceTasks;
|
||||
import core.game.system.task.Pulse;
|
||||
import rs09.game.world.GameWorld;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* Package -> org.keldagrim.game.node.entity.player.ai.resource
|
||||
* Created on -> 9/13/2016 @12:42 PM for 530
|
||||
*
|
||||
* @author Ethan Kyle Millard
|
||||
*/
|
||||
public class ResourceAIPManager {
|
||||
|
||||
private long time = 0;
|
||||
|
||||
private Player player;
|
||||
|
||||
private static Map<ResourceTask, Long> TASKS = new HashMap<>();
|
||||
|
||||
public ResourceAIPManager init() {
|
||||
getTasks().put(ResourceTasks.WOODCUTTING.getResourceTask(), 0L);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ResourceAIPManager runTask(Player player, String taskName) {
|
||||
for (Map.Entry<ResourceTask, Long> entry : getTasks().entrySet()) {
|
||||
if (entry.getKey().getTaskName().equalsIgnoreCase(taskName)) {
|
||||
if (entry.getValue() != 0) {
|
||||
message(player, "You have extended the task " + taskName + ".");
|
||||
} else {
|
||||
message(player, "You have activated the task " + taskName + ".");
|
||||
}
|
||||
}
|
||||
entry.getKey().setTaskName(taskName);
|
||||
entry.setValue(entry.getValue() + 70);
|
||||
this.player = player;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public void reActivate(String name, long time) {
|
||||
for (Map.Entry<ResourceTask, Long> entry : TASKS.entrySet()) {
|
||||
if (entry.getKey().getTaskName().equalsIgnoreCase(name)) {
|
||||
entry.setValue(time);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ResourceAIPManager load(Player player) {
|
||||
try {
|
||||
Statement statement = GameWorld.getDatabaseManager().connections().get("global").createStatement();
|
||||
|
||||
ResultSet result = statement.executeQuery("SELECT * FROM `members` WHERE username='" + player.getUsername() + "'");
|
||||
// Results result = new Results(GameWorld.getDatabaseManager().query("global", "SELECT * FROM `members` WHERE username='" + player.getUsername() + "'"));
|
||||
|
||||
while (result.next()) {
|
||||
String eventName = result.getString("taskName");
|
||||
String eventTime = result.getString("taskTime");
|
||||
reActivate(eventName, Long.valueOf(eventTime));
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public ResourceAIPManager save(Player player) {
|
||||
/*if (GameWorld.getDatabaseManager().update("global", "DELETE FROM `members` WHERE worldid='" + GameWorld.getSettings().getWorldId() + "'") < 0)
|
||||
return this;*/
|
||||
System.out.println("Saving...");
|
||||
Iterator<Map.Entry<ResourceTask, Long>> iterator = getTasks().entrySet().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Map.Entry<ResourceTask, Long> entry = iterator.next();
|
||||
if (entry.getValue() <= 0)
|
||||
continue;
|
||||
StringBuilder query = new StringBuilder();
|
||||
query.append("UPDATE `members` SET `taskName`='" + entry.getKey().getTaskName() + "',`taskTime`='" + entry.getValue() + "' WHERE `username`='" + player.getUsername() + "'");
|
||||
System.out.println("ResourceAIPManager: " + query.toString());
|
||||
GameWorld.getDatabaseManager().update("global", query.toString());
|
||||
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public void pulse(Player player) {
|
||||
GameWorld.getPulser().submit(new Pulse(1) {
|
||||
@Override
|
||||
public boolean pulse() {
|
||||
|
||||
time++;
|
||||
|
||||
Iterator<Map.Entry<ResourceTask, Long>> iterator = getTasks().entrySet().iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
Map.Entry<ResourceTask, Long> entry = iterator.next();
|
||||
if (entry.getValue() > 0) {
|
||||
entry.setValue(entry.getValue() - 1);
|
||||
if (entry.getValue() == 50)
|
||||
message(player, "You have 30 minutes before " + entry.getKey().getTaskName() + " task ends.");
|
||||
if (entry.getValue() <= 0) {
|
||||
entry.getKey().setTime(0);
|
||||
entry.getKey().reward(player, entry.getKey().getTaskName());
|
||||
message(player, "The task " + entry.getKey().getTaskName() + " has now ended.");
|
||||
save(player);
|
||||
}
|
||||
if (time == 50) {
|
||||
entry.getKey().setTime(0);
|
||||
save(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public ResourceAIPManager message(Player player, String message) {
|
||||
return message(player, message, true, "<col=027fc7>");
|
||||
}
|
||||
|
||||
public ResourceAIPManager message(Player player, String message, boolean tag) {
|
||||
return message(player, message, tag, "<col=027fc7>");
|
||||
}
|
||||
|
||||
public ResourceAIPManager notify(Player player, String message) {
|
||||
return message(player, message, true, "<col=800000>");
|
||||
}
|
||||
|
||||
public ResourceAIPManager notify(Player player, String message, boolean tag) {
|
||||
return message(player, message, tag, "<col=800000>");
|
||||
}
|
||||
|
||||
|
||||
public ResourceAIPManager message(Player player, String message, boolean tag, String color) {
|
||||
player.getPacketDispatch().sendMessage(color + (tag ? "[Resource Manager] - " : "") + message);
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
public static Map<ResourceTask, Long> getTasks() {
|
||||
return TASKS;
|
||||
}
|
||||
|
||||
private static ResourceAIPManager INSTANCE = new ResourceAIPManager();
|
||||
|
||||
public static ResourceAIPManager get() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public void setPlayer(Player player) {
|
||||
this.player = player;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package rs09.game.ai.resource.task;
|
||||
|
||||
import core.game.node.entity.player.Player;
|
||||
|
||||
/**
|
||||
* Package -> org.keldagrim.game.node.entity.player.ai.resource.task
|
||||
* Created on -> 9/13/2016 @12:44 PM for 530
|
||||
*
|
||||
* @author Ethan Kyle Millard
|
||||
*/
|
||||
public abstract class ResourceTask {
|
||||
|
||||
|
||||
private String taskName;
|
||||
private long time;
|
||||
|
||||
public ResourceTask(String taskName, long time) {
|
||||
this.taskName = taskName;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public abstract void reward(Player player, String eventName);
|
||||
|
||||
public long getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public void setTime(long time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getTaskName() {
|
||||
return taskName;
|
||||
}
|
||||
|
||||
public void setTaskName(String taskName) {
|
||||
this.taskName = taskName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package rs09.game.ai.resource.task;
|
||||
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.item.Item;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
/**
|
||||
* Package -> org.keldagrim.game.node.entity.player.ai.resource.task
|
||||
* Created on -> 9/13/2016 @12:43 PM for 530
|
||||
*
|
||||
* @author Ethan Kyle Millard
|
||||
*/
|
||||
public enum ResourceTasks {
|
||||
|
||||
WOODCUTTING(new ResourceTask("Willow Logs", 6000) {
|
||||
|
||||
@Override
|
||||
public void reward(Player player, String eventName) {
|
||||
if (player.getSkills().getLevel(Skills.WOODCUTTING) < 30) {
|
||||
player.sendMessage(reqirementMessage());
|
||||
return;
|
||||
}
|
||||
if (getTime() == 0) {
|
||||
player.getBank().add(new Item(1519, RandomFunction.random(700, 1000)));
|
||||
player.getSkills().addExperience(Skills.WOODCUTTING, RandomFunction.random(100000, 150000));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
private ResourceTask resourceTask;
|
||||
|
||||
|
||||
ResourceTasks(ResourceTask resourceTask) {
|
||||
this.resourceTask = resourceTask;
|
||||
}
|
||||
|
||||
public ResourceTask getResourceTask() {
|
||||
return resourceTask;
|
||||
}
|
||||
|
||||
public void setResourceTask(ResourceTask resourceTask) {
|
||||
this.resourceTask = resourceTask;
|
||||
}
|
||||
|
||||
private static String reqirementMessage() {
|
||||
return "You do not meet the requirements for this task.";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user