Merge pull request #29 from Dark98/master

Check Commits :p
This commit is contained in:
Daniel Ginovker 2019-11-07 07:47:44 -05:00 committed by GitHub
commit 737f76eff2
19 changed files with 2853 additions and 3380 deletions

File diff suppressed because it is too large Load diff

View file

@ -151,8 +151,8 @@ public final class ServerConstants {
}; };
public static final Database[] DATABASES = { public static final Database[] DATABASES = {
new Database(SQLManager.SQL_SERVER_ADDRESS, DATABASE_NAMES[0], (SQLManager.LOCAL ? "root" : "username"), (SQLManager.LOCAL ? "" : "password")), new Database(SQLManager.SQL_SERVER_ADDRESS, DATABASE_NAMES[0], (SQLManager.LOCAL ? "dark" : "username"), (SQLManager.LOCAL ? "Pikmin123:)" : "password")),
new Database(SQLManager.SQL_SERVER_ADDRESS, DATABASE_NAMES[1], (SQLManager.LOCAL ? "root" : "username"), (SQLManager.LOCAL ? "" : "password")) new Database(SQLManager.SQL_SERVER_ADDRESS, DATABASE_NAMES[1], (SQLManager.LOCAL ? "dark" : "username"), (SQLManager.LOCAL ? "Pikmin123:)" : "password"))
}; };
/** /**

View file

@ -3,7 +3,6 @@ package org.crandor.game.content.skill;
import org.crandor.game.content.global.SkillcapePerks; import org.crandor.game.content.global.SkillcapePerks;
import org.crandor.game.content.global.tutorial.TutorialSession; import org.crandor.game.content.global.tutorial.TutorialSession;
import org.crandor.game.content.holiday.HolidayEvent; import org.crandor.game.content.holiday.HolidayEvent;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.node.entity.Entity; import org.crandor.game.node.entity.Entity;
import org.crandor.game.node.entity.combat.ImpactHandler; import org.crandor.game.node.entity.combat.ImpactHandler;
import org.crandor.game.node.entity.npc.NPC; import org.crandor.game.node.entity.npc.NPC;
@ -258,7 +257,7 @@ public final class Skills {
if (!(entity instanceof Player)) { if (!(entity instanceof Player)) {
return 1.0; return 1.0;
} }
double mod = multiplyer ? (GlobalEvent.XP_FEVER.isActive() ? EXPERIENCE_MULTIPLIER * 2 : EXPERIENCE_MULTIPLIER) : 1; double mod = multiplyer ? (EXPERIENCE_MULTIPLIER) : 1;
Player p = (Player) entity; Player p = (Player) entity;
if (p.getIronmanManager().getMode() == IronmanMode.ULTIMATE) { if (p.getIronmanManager().getMode() == IronmanMode.ULTIMATE) {
mod /= 4; mod /= 4;
@ -859,7 +858,7 @@ public int getCombatMilestone() {
/** /**
* Sets the combatMilestones value. * Sets the combatMilestones value.
* @param combatMilestones The combatMilestones to set. * @param combatMilestone The combatMilestones to set.
*/ */
public void setCombatMilestone(int combatMilestone) { public void setCombatMilestone(int combatMilestone) {
this.combatMilestone = combatMilestone; this.combatMilestone = combatMilestone;

View file

@ -6,7 +6,6 @@ import org.crandor.game.content.global.tutorial.TutorialStage;
import org.crandor.game.content.skill.SkillPulse; import org.crandor.game.content.skill.SkillPulse;
import org.crandor.game.content.skill.Skills; import org.crandor.game.content.skill.Skills;
import org.crandor.game.content.skill.member.summoning.familiar.Forager; import org.crandor.game.content.skill.member.summoning.familiar.Forager;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.node.entity.npc.NPC; import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.entity.player.info.portal.Perks; import org.crandor.game.node.entity.player.info.portal.Perks;
@ -181,8 +180,6 @@ public final class FishingPulse extends SkillPulse<NPC> {
player.getSkillTasks().decreaseTask(player, SkillTasks.FTUNA2); player.getSkillTasks().decreaseTask(player, SkillTasks.FTUNA2);
} }
if (GlobalEvent.PLENTY_OF_FISH.isActive())
player.getInventory().add(fish.getItem());
SkillingPets.checkPetDrop(player, SkillingPets.HERON); SkillingPets.checkPetDrop(player, SkillingPets.HERON);
final Item item = fish.getItem(); final Item item = fish.getItem();
player.getInventory().add(item); player.getInventory().add(item);
@ -292,7 +289,6 @@ public final class FishingPulse extends SkillPulse<NPC> {
/** /**
* Method used to check if the catch was a success. * Method used to check if the catch was a success.
* @param player the player.
* @return <code>True</code> if so. * @return <code>True</code> if so.
*/ */
private boolean success() { private boolean success() {

View file

@ -11,7 +11,6 @@ import org.crandor.game.content.global.tutorial.TutorialStage;
import org.crandor.game.content.skill.SkillPulse; import org.crandor.game.content.skill.SkillPulse;
import org.crandor.game.content.skill.Skills; import org.crandor.game.content.skill.Skills;
import org.crandor.game.content.skill.member.farming.wrapper.PatchWrapper; import org.crandor.game.content.skill.member.farming.wrapper.PatchWrapper;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.node.entity.impl.Projectile; import org.crandor.game.node.entity.impl.Projectile;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.entity.player.info.portal.Perks; import org.crandor.game.node.entity.player.info.portal.Perks;
@ -343,10 +342,6 @@ public final class GatheringSkillPulse extends SkillPulse<GameObject> {
*/ */
private int calculateRewardAmount(int reward) { private int calculateRewardAmount(int reward) {
int amount = 1; int amount = 1;
// Event doubles resources
if (GlobalEvent.HARVESTING_DOUBLES.isActive()) {
amount *= 2;
}
if (isMining && !isMiningEssence) { if (isMining && !isMiningEssence) {
// Not sure what this bonus is for // Not sure what this bonus is for

View file

@ -3,7 +3,6 @@ package org.crandor.game.content.skill.free.runecrafting;
import org.crandor.game.container.impl.EquipmentContainer; import org.crandor.game.container.impl.EquipmentContainer;
import org.crandor.game.content.skill.SkillPulse; import org.crandor.game.content.skill.SkillPulse;
import org.crandor.game.content.skill.Skills; import org.crandor.game.content.skill.Skills;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.node.entity.impl.Animator.Priority; import org.crandor.game.node.entity.impl.Animator.Priority;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.entity.player.info.portal.Perks; import org.crandor.game.node.entity.player.info.portal.Perks;
@ -309,9 +308,6 @@ public final class RuneCraftPulse extends SkillPulse<Item> {
i *= 2; i *= 2;
} }
if(GlobalEvent.GOLDEN_ESSENCE.isActive()) {
i *= 3;
}
return i != 0 ? i : 1; return i != 0 ? i : 1;
} }

View file

@ -2,7 +2,6 @@ package org.crandor.game.content.skill.member.thieving;
import org.crandor.game.content.global.ttrail.ClueLevel; import org.crandor.game.content.global.ttrail.ClueLevel;
import org.crandor.game.content.global.ttrail.ClueScrollPlugin; import org.crandor.game.content.global.ttrail.ClueScrollPlugin;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.node.entity.npc.NPC; import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.npc.drop.DropFrequency; import org.crandor.game.node.entity.npc.drop.DropFrequency;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
@ -174,11 +173,6 @@ public enum Pickpocket {
// Calculate any bonus multipliers // Calculate any bonus multipliers
int bonusMultiplier = 1; int bonusMultiplier = 1;
if (loot[0] == 995) {
if(GlobalEvent.THIEVES_JACKPOT.isActive()) {
bonusMultiplier *= 3;
}
}
return new Item(loot[0], loot[1] * bonusMultiplier); return new Item(loot[0], loot[1] * bonusMultiplier);
} }

View file

@ -1,84 +0,0 @@
package org.crandor.game.events;
import org.crandor.Util;
public enum GlobalEvent {
ALCHEMY_HELLENISTIC("Receive 2 x coins when using high alchemy"), // Not implemented
GOLDEN_RETRIEVER("All gold dropped by monsters will be automatically banked for you"), // Not implemented
THIEVES_JACKPOT("Receive 3 x more coins when thieving"),
GOLDEN_ESSENCE("Receive 3 x more runes when runecrafting"),
CLONE_FEST("20 clones are been spawned in the wilderness near the mage arena."), // Not implemented
TRY_YOUR_LUCK("Mobs will drop 40% more items when killed"),
CRAZY_SEEDS("Mobs will drop 2 x more seeds when killed"),
CHARMED("Mobs will drop 2 x more charms when killed"),
XP_FEVER("Receive 2 x XP for all skills"),
PLENTY_OF_FISH("Receive 2 x rewards when fishing"),
HARVESTING_DOUBLES("Receive 2 x items harvested with woodcutting or mining");
/**
* Represents the object of the altar.
*/
private final String eventName;
/**
* Represents the object of the altar.
*/
private final String eventDescription;
/**
* Represents the object of the altar.
*/
private Long remainingTicks;
GlobalEvent(final String eventDescription) {
this.eventName = Util.enumToString(this.name());;
this.eventDescription = eventDescription;
this.remainingTicks = 0L;
}
public String getName() {
return this.eventName;
}
public String getDescription() {
return this.eventDescription;
}
public Long getRemainingTicks() {
return this.remainingTicks;
}
public GlobalEvent setRemainingTicks(Long ticks) {
this.remainingTicks = ticks;
return this;
}
public Boolean isActive() {
return this.remainingTicks > 0;
}
public GlobalEvent tick() {
remainingTicks--;
return this;
}
// Start/Extend the event
public GlobalEvent extend() {
return extend(6000);
}
public GlobalEvent extend(int ticks) {
remainingTicks += ticks;
return this;
}
public GlobalEvent start() {
return extend(6000);
}
public GlobalEvent start(int ticks) {
extend(ticks);
return this;
}
}

View file

@ -1,234 +0,0 @@
package org.crandor.game.events;
import org.crandor.Util;
import org.crandor.game.node.entity.player.Player;
import org.crandor.game.system.task.Pulse;
import org.crandor.game.world.GameWorld;
import org.crandor.game.world.callback.CallBack;
import org.crandor.game.world.repository.Repository;
import org.crandor.tools.mysql.Results;
/**
* Class to handle donated events.
*
* @author Vip3r
* Version 1.0
*/
public class GlobalEventManager implements CallBack {
private long tick = 0;
private GlobalEvent lastEvent;
private GlobalEvent currentEvent;
public final GlobalEventManager init() {
return this;
}
public final Pulse pulse() {
return new Pulse(1) {
@Override
public boolean pulse() {
tick++;
for(GlobalEvent event : GlobalEvent.values()){
Long ticksRemaining = event.getRemainingTicks();
if (ticksRemaining > 0) {
event.tick();
--ticksRemaining;
if (ticksRemaining <= 0)
message("The " + event.getName() + " event has now ended.");
else if (ticksRemaining % 3000 == 0)
message("You have " + Math.round(ticksRemaining / 100) + " minutes before the " + event.getName() + " event ends.");
}
}
if (tick == 100) {
tick = 0;
save();
}
return false;
}
};
}
public void reActivate(GlobalEvent event, long time) {
event.setRemainingTicks(time);
}
public GlobalEventManager save() {
for(GlobalEvent event : GlobalEvent.values()){
StringBuilder query = new StringBuilder();
query.append("INSERT INTO `global_events` ");
query.append("(`eventName`,`eventTime`,`worldId`)");
query.append(" VALUES(");
query.append("'" + event.getName() + "'").append(",");
query.append("'" + event.getRemainingTicks() + "'").append(",");
query.append("'" + GameWorld.getSettings().getWorldId() + "'");
query.append(")");
query.append(" ON DUPLICATE KEY UPDATE ");
query.append("eventTime='" + event.getRemainingTicks() + "'");
GameWorld.getDatabaseManager().update("server", query.toString());
}
return this;
}
public GlobalEventManager load() {
try {
Results result = new Results(GameWorld.getDatabaseManager().query("server", "SELECT * FROM `global_events` WHERE worldid='" + GameWorld.getSettings().getWorldId() + "'"));
while (!result.empty()) {
String eventName = result.string("eventName");
String eventTime = result.string("eventTime");
GlobalEvent event = getEvent(eventName);
reActivate(event, Long.valueOf(eventTime));
}
} catch(Exception e) {
e.printStackTrace();
}
return this;
}
public GlobalEventManager message(String message) {
return message(message, true, "<col=3498db>");
}
public GlobalEventManager message(String message, boolean tag) {
return message(message, tag, "<col=3498db>");
}
public GlobalEventManager message(String message, boolean tag, String color) {
for (Player player : Repository.getPlayers()) {
player.sendMessage(color + (tag ? "[Event Manager] " : "") + message);
}
return this;
}
public GlobalEventManager deactivate(GlobalEvent event) {
// Only deactivate event if already active
if (!event.isActive()) {
return this;
}
// Event will end in 2 ticks
event.setRemainingTicks(2L);
return this;
}
public GlobalEventManager activate(GlobalEvent event) {
return activate(event, null, 6000);
}
public GlobalEventManager activate(GlobalEvent event, String name) {
return activate(event, name, 6000);
}
public GlobalEventManager activate(GlobalEvent event, String name, int timeToAdd) {
if (timeToAdd <= 0) timeToAdd = 6000;
Player player = Repository.getPlayerByDisplay(name);
StringBuilder message = new StringBuilder();
message.append("The " + event.getName() + " event has been ");
message.append(event.isActive() ? "extended by" : "activated for");
message.append(" " + Math.round(timeToAdd / 100) + " minutes");
if (player != null) {
message.append(" by " + player.getUsername());
}
message.append(".");
// start the event after building the string
event.start(timeToAdd);
message(message.toString());
message(event.getDescription(), false, "<col=ecf0f1>");
return this;
}
public GlobalEventManager activateHourly(GlobalEvent event) {
event.start(6000);
message(event.getName() + " event is now active, and will run for an hour!");
message(event.getDescription(), false, "<col=ecf0f1>");
return this;
}
public boolean isActive(GlobalEvent event) {
return event.isActive();
}
public GlobalEventManager alert(Player player) {
boolean active = false;
for(GlobalEvent event : GlobalEvent.values()){
if (event.isActive()) {
active = true;
}
}
if (!active) {
player.sendMessage("<col=3498db>No events are currently active.");
return this;
}
player.sendMessage("<col=3498db>The following events are active:");
for(GlobalEvent event : GlobalEvent.values()){
if (event.isActive()) {
player.sendMessage("<col=3498db> [-] " + event.getName() + ".");
}
}
return this;
}
private static GlobalEventManager INSTANCE = new GlobalEventManager();
public static GlobalEventManager get() {
return INSTANCE;
}
@Override
public boolean call() {
GameWorld.submit(pulse());
return true;
}
public static GlobalEvent getEvent(String name) {
for(GlobalEvent event : GlobalEvent.values()){
if (event.getName().equalsIgnoreCase(name) || event.name().equalsIgnoreCase(Util.strToEnum(name)))
return event;
}
return null;
}
public GlobalEvent getLastEvent() {
return lastEvent;
}
public void setLastEvent(GlobalEvent event) {
this.lastEvent = event;
}
public GlobalEvent getCurrentEvent() {
return currentEvent;
}
public void setCurrentEvent(GlobalEvent event) {
this.currentEvent = event;
}
}

View file

@ -8,7 +8,6 @@ import org.crandor.game.content.eco.EconomyManagement;
import org.crandor.game.content.eco.ge.GrandExchangeDatabase; import org.crandor.game.content.eco.ge.GrandExchangeDatabase;
import org.crandor.game.content.global.Bones; import org.crandor.game.content.global.Bones;
import org.crandor.game.content.skill.Skills; import org.crandor.game.content.skill.Skills;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.node.entity.Entity; import org.crandor.game.node.entity.Entity;
import org.crandor.game.node.entity.npc.NPC; import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
@ -93,12 +92,6 @@ public final class NPCDropTables {
Player p = looter instanceof Player ? (Player) looter : null; Player p = looter instanceof Player ? (Player) looter : null;
for (ChanceItem item : defaultTable) { for (ChanceItem item : defaultTable) {
int amount = RandomFunction.random(item.getMinimumAmount(), item.getMaximumAmount() + 1); int amount = RandomFunction.random(item.getMinimumAmount(), item.getMaximumAmount() + 1);
if (GlobalEvent.TRY_YOUR_LUCK.isActive())
amount *= 1.4;
if (GlobalEvent.CRAZY_SEEDS.isActive() && ItemDefinition.forId(item.getId()).getName().toLowerCase().contains("seed"))
amount *= 2;
if (GlobalEvent.CHARMED.isActive() && ItemDefinition.forId(item.getId()).getName().toLowerCase().contains("charm"))
amount *= 2;
if (npc.getName().startsWith("Revenant") && item.getName().equalsIgnoreCase("coins")) { if (npc.getName().startsWith("Revenant") && item.getName().equalsIgnoreCase("coins")) {
break; break;
} }
@ -181,7 +174,7 @@ public final class NPCDropTables {
if (handleBoneCrusher(player, item)) { if (handleBoneCrusher(player, item)) {
return; return;
} }
if (item.getId() == 995 && player.getBank().hasSpaceFor(item) && ( player.getGlobalData().isEnableCoinMachine() || GlobalEvent.GOLDEN_RETRIEVER.isActive() )) { if (item.getId() == 995 && player.getBank().hasSpaceFor(item) && ( player.getGlobalData().isEnableCoinMachine() )) {
item = new Item(995, (int) (item.getAmount() + (item.getAmount() * 0.25))); item = new Item(995, (int) (item.getAmount() + (item.getAmount() * 0.25)));
player.getBank().add(item); player.getBank().add(item);
player.sendMessage("<col=3498db> " + item.getAmount() + " coins were sent to your bank."); player.sendMessage("<col=3498db> " + item.getAmount() + " coins were sent to your bank.");

View file

@ -3,7 +3,6 @@ package org.crandor.game.node.entity.player.info.login;
import org.crandor.game.component.CloseEvent; import org.crandor.game.component.CloseEvent;
import org.crandor.game.component.Component; import org.crandor.game.component.Component;
import org.crandor.game.content.global.tutorial.TutorialSession; import org.crandor.game.content.global.tutorial.TutorialSession;
import org.crandor.game.events.GlobalEventManager;
import org.crandor.game.interaction.Option; import org.crandor.game.interaction.Option;
import org.crandor.game.interaction.OptionHandler; import org.crandor.game.interaction.OptionHandler;
import org.crandor.game.node.Node; import org.crandor.game.node.Node;
@ -159,7 +158,6 @@ public final class LoginConfiguration {
player.getPacketDispatch().sendMessage("You are muted."); player.getPacketDispatch().sendMessage("You are muted.");
player.getPacketDispatch().sendMessage("To prevent further mutes please read the rules."); player.getPacketDispatch().sendMessage("To prevent further mutes please read the rules.");
} }
GlobalEventManager.get().alert(player);
if(player.getSkills().getTotalLevel() < 300){ if(player.getSkills().getTotalLevel() < 300){
Repository.sendNews("<col=BA55D3>As a new player, you are receiving boosted combat skill experience.</col>", "<col=BA55D3>In addition, you may speak to the Guide for game information."); Repository.sendNews("<col=BA55D3>As a new player, you are receiving boosted combat skill experience.</col>", "<col=BA55D3>In addition, you may speak to the Guide for game information.");
} }

View file

@ -1,7 +1,5 @@
package org.crandor.game.system; package org.crandor.game.system;
import org.crandor.game.events.GlobalEventManager;
/** /**
* Handles the shutdown hook. * Handles the shutdown hook.
* @author Emperor * @author Emperor
@ -14,7 +12,6 @@ public final class SystemShutdownHook implements Runnable {
return; return;
} }
SystemLogger.log("[SystemShutdownHook] Terminating..."); SystemLogger.log("[SystemShutdownHook] Terminating...");
GlobalEventManager.get().save();
SystemManager.getTerminator().terminate(); SystemManager.getTerminator().terminate();
} }
} }

View file

@ -3,7 +3,6 @@ package org.crandor.game.system;
import org.crandor.cache.ServerStore; import org.crandor.cache.ServerStore;
import org.crandor.game.content.eco.ge.GEOfferDispatch; import org.crandor.game.content.eco.ge.GEOfferDispatch;
import org.crandor.game.content.eco.ge.GrandExchangeDatabase; import org.crandor.game.content.eco.ge.GrandExchangeDatabase;
import org.crandor.game.events.GlobalEventManager;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.entity.player.info.login.PlayerParser; import org.crandor.game.node.entity.player.info.login.PlayerParser;
import org.crandor.game.world.repository.Repository; import org.crandor.game.world.repository.Repository;
@ -43,7 +42,6 @@ public final class SystemTermination {
public void terminate() { public void terminate() {
SystemLogger.log("[SystemTerminator] Initializing termination sequence - do not shutdown!"); SystemLogger.log("[SystemTerminator] Initializing termination sequence - do not shutdown!");
try { try {
GlobalEventManager.get().save();
save(getDataDirectory()); save(getDataDirectory());
} catch (Throwable e) { } catch (Throwable e) {
e.printStackTrace(); e.printStackTrace();

View file

@ -4,8 +4,6 @@ import org.crandor.ServerConstants;
import org.crandor.cache.Cache; import org.crandor.cache.Cache;
import org.crandor.cache.ServerStore; import org.crandor.cache.ServerStore;
import org.crandor.game.content.eco.ge.GrandExchangeDatabase; import org.crandor.game.content.eco.ge.GrandExchangeDatabase;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.events.GlobalEventManager;
import org.crandor.game.node.entity.npc.NPC; import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.entity.player.ai.AIPBuilder; import org.crandor.game.node.entity.player.ai.AIPBuilder;
@ -99,26 +97,6 @@ public final class GameWorld {
} }
} }
/*
* getEvents().put("Alchemy hellenistic", 0L);
getEvents().put("Golden retriever", 0L);
getEvents().put("Harvesting doubles", 0L);
getEvents().put("Thieves jackpot", 0L);
getEvents().put("Golden essence", 0L);
*/
public static GlobalEvent[] hourlyEvents = {
GlobalEvent.ALCHEMY_HELLENISTIC,
GlobalEvent.GOLDEN_RETRIEVER,
GlobalEvent.THIEVES_JACKPOT,
GlobalEvent.GOLDEN_ESSENCE,
GlobalEvent.TRY_YOUR_LUCK,
GlobalEvent.CRAZY_SEEDS,
GlobalEvent.CHARMED,
GlobalEvent.XP_FEVER,
GlobalEvent.PLENTY_OF_FISH,
GlobalEvent.HARVESTING_DOUBLES,
};
/** /**
* Pulses all current pulses. * Pulses all current pulses.
*/ */
@ -146,53 +124,7 @@ public final class GameWorld {
} }
pulses.clear(); pulses.clear();
ticks++; ticks++;
eventTicks++;
cfTicks++;
switch(cfTicks) {
case 100:
if (checkDay()) {
// Activate clone fest for 15 minutes
GlobalEventManager.get().activate(GlobalEvent.CLONE_FEST, null, 1500);
if (GlobalEvent.CLONE_FEST.isActive()) {
int size = 20;
if (PVPAIPActions.pvp_players == null) {
PVPAIPActions.pvp_players = new ArrayList<>();
}
for (int i = 0; i < size; i++) {
String aipName = PVPAIPBuilderUtils.names[i];
final AIPlayer aip = AIPBuilder.create(aipName, generateLocation());
aip.getAppearance().setGender(RandomFunction.random(3) == 1 ? Gender.FEMALE : Gender.MALE);
Repository.getPlayers().add(aip);
aip.init();
PVPAIPBuilderUtils.generateClass(aip);
if (PVPAIPActions.pvp_players.isEmpty()) {
aip.setAttribute("aip_legion", PVPAIPActions.pvp_players);
}
PVPAIPActions.pvp_players.add(aip);
}
PVPAIPActions.syncBotThread(null);
}
}
break;
case 2100:
cfTicks = 0;
break;
}
switch (eventTicks) {
// 2 minute gap between events
case 200:
int randomEventId = new Random().nextInt(hourlyEvents.length);
GlobalEvent event = hourlyEvents[randomEventId];
GlobalEventManager.get().setLastEvent(event);
GlobalEventManager.get().setCurrentEvent(event);
GlobalEventManager.get().activateHourly(event);
break;
case 6200:
eventTicks = 0;
break;
}
for (Player p : Repository.getPlayers()) { for (Player p : Repository.getPlayers()) {
if (p.isPlaying()) { if (p.isPlaying()) {
switch (RandomFunction.getRandom(1000)) { switch (RandomFunction.getRandom(1000)) {
@ -268,7 +200,6 @@ public final class GameWorld {
SQLManager.prePlugin(); SQLManager.prePlugin();
ScriptManager.load(); ScriptManager.load();
PluginManager.init(); PluginManager.init();
GlobalEventManager.get().init();
ResourceAIPManager.get().init(); ResourceAIPManager.get().init();
SQLManager.postPlugin(); SQLManager.postPlugin();
parseObjects(); parseObjects();

View file

@ -4,7 +4,6 @@ import org.crandor.game.content.eco.ge.GEOfferDispatch;
import org.crandor.game.content.holiday.HolidayEvent; import org.crandor.game.content.holiday.HolidayEvent;
import org.crandor.game.content.skill.member.farming.FarmingPulse; import org.crandor.game.content.skill.member.farming.FarmingPulse;
import org.crandor.game.content.skill.member.hunter.ImpetuousImpulses; import org.crandor.game.content.skill.member.hunter.ImpetuousImpulses;
import org.crandor.game.events.GlobalEventManager;
import org.crandor.game.system.SystemLogger; import org.crandor.game.system.SystemLogger;
import org.crandor.game.world.map.zone.ZoneBuilder; import org.crandor.game.world.map.zone.ZoneBuilder;
@ -41,7 +40,6 @@ public final class CallbackHub {
calls.add(new GEOfferDispatch()); calls.add(new GEOfferDispatch());
calls.add(new FarmingPulse()); calls.add(new FarmingPulse());
calls.add(new ImpetuousImpulses()); calls.add(new ImpetuousImpulses());
calls.add(GlobalEventManager.get());
for (CallBack call : calls) { for (CallBack call : calls) {
if (!call.call()) { if (!call.call()) {
SystemLogger.error("A callback was stopped, callback=" + call.getClass().getSimpleName() + "."); SystemLogger.error("A callback was stopped, callback=" + call.getClass().getSimpleName() + ".");

View file

@ -15,8 +15,6 @@ import org.crandor.game.content.skill.Skills;
import org.crandor.game.content.skill.free.smithing.smelting.Bar; import org.crandor.game.content.skill.free.smithing.smelting.Bar;
import org.crandor.game.content.skill.member.construction.HouseLocation; import org.crandor.game.content.skill.member.construction.HouseLocation;
import org.crandor.game.content.skill.member.summoning.pet.Pets; import org.crandor.game.content.skill.member.summoning.pet.Pets;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.events.GlobalEventManager;
import org.crandor.game.node.entity.combat.ImpactHandler.HitsplatType; import org.crandor.game.node.entity.combat.ImpactHandler.HitsplatType;
import org.crandor.game.node.entity.npc.NPC; import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
@ -99,9 +97,6 @@ public final class DeveloperCommandPlugin extends CommandPlugin {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@Override @Override
public boolean parse(final Player player, String name, String[] args) { public boolean parse(final Player player, String name, String[] args) {
String[] eventNameArr;
String eventName;
GlobalEvent event = GlobalEvent.ALCHEMY_HELLENISTIC;
switch (name) { switch (name) {
case "find": case "find":
try { try {
@ -155,9 +150,6 @@ public final class DeveloperCommandPlugin extends CommandPlugin {
} }
}); });
break; break;
case "eventlocator":
player.getDialogueInterpreter().open(175869, GlobalEventManager.get().getCurrentEvent());
break;
case "drops": case "drops":
try { try {
new NPCDropSQLHandler().parse(); new NPCDropSQLHandler().parse();
@ -176,66 +168,12 @@ public final class DeveloperCommandPlugin extends CommandPlugin {
player.sendMessage("You have " + player.getSkillTasks().getTaskAmount() + " more to go!"); player.sendMessage("You have " + player.getSkillTasks().getTaskAmount() + " more to go!");
break; break;
case "eventactivate":
case "eventstart":
case "eventbegin":
case "activateevent":
case "startevent":
case "beginevent":
eventNameArr = Arrays.copyOfRange(args, 1, args.length);
eventName = String.join(" ", eventNameArr);
event = GlobalEventManager.getEvent(eventName);
if (event == null)
break;
GlobalEventManager.get().activate(event);
player.sendMessage("You have activated the " + event.getName() + " event!");
break;
case "eventdeactivate":
case "eventend":
case "eventfinish":
case "deactivateevent":
case "endevent":
case "finishevent":
eventNameArr = Arrays.copyOfRange(args, 1, args.length);
eventName = String.join(" ", eventNameArr);
event = GlobalEventManager.getEvent(eventName);
if (event == null)
break;
GlobalEventManager.get().deactivate(event);
player.sendMessage("You have deactivated the " + event.getName() + " event!");
break;
case "poison": case "poison":
player.getStateManager().set(EntityState.POISONED, 200, player); player.getStateManager().set(EntityState.POISONED, 200, player);
player.getConfigManager().set(102, 1); player.getConfigManager().set(102, 1);
player.sendMessage("Poisoned..."); player.sendMessage("Poisoned...");
break; break;
case "activatecf":
GlobalEventManager.get().activate(GlobalEvent.CLONE_FEST);
if (GlobalEvent.CLONE_FEST.isActive()) {
int size = 20;
if (PVPAIPActions.pvp_players == null) {
player.setAttribute("aip_legion", PVPAIPActions.pvp_players = new ArrayList<>());
}
for (int i = 0; i < size; i++) {
String aipName = PVPAIPBuilderUtils.names[i];
final AIPlayer aip = AIPBuilder.create(aipName, generateLocation(player));
aip.setControler(player);
aip.getAppearance().setGender(RandomFunction.random(3) == 1 ? Gender.FEMALE : Gender.MALE);
Repository.getPlayers().add(aip);
aip.init();
PVPAIPBuilderUtils.generateClass(aip);
if (PVPAIPActions.pvp_players.isEmpty()) {
aip.setAttribute("aip_legion", PVPAIPActions.pvp_players);
}
PVPAIPActions.pvp_players.add(aip);
}
PVPAIPActions.syncBotThread(player);
}
break;
case "reloaddb": case "reloaddb":
SQLManager.init(); SQLManager.init();
player.sendMessage("[MySQl] The database has been reloaded."); player.sendMessage("[MySQl] The database has been reloaded.");

View file

@ -2,8 +2,6 @@ package plugin.command;
import org.crandor.ServerConstants; import org.crandor.ServerConstants;
import org.crandor.game.component.Component; import org.crandor.game.component.Component;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.events.GlobalEventManager;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.entity.player.info.Rights; import org.crandor.game.node.entity.player.info.Rights;
import org.crandor.game.node.entity.player.link.IronmanMode; import org.crandor.game.node.entity.player.link.IronmanMode;
@ -188,11 +186,6 @@ public final class PlayerCommandPlugin extends CommandPlugin {
sendDonationInfo(player); sendDonationInfo(player);
return true; return true;
case "events":
GlobalEventManager.get().alert(player);
sendEvents(player);
return true;
case "reply": case "reply":
if(player.getInterfaceManager().isOpened()){ if(player.getInterfaceManager().isOpened()){
player.sendMessage("<col=e74c3c>Please finish what you're doing first."); player.sendMessage("<col=e74c3c>Please finish what you're doing first.");
@ -289,33 +282,6 @@ public final class PlayerCommandPlugin extends CommandPlugin {
} }
} }
/**
* Sends events list.
* @param player the player.
*/
private void sendEvents(Player player) {
if (player.getInterfaceManager().isOpened()) {
player.sendMessage("Finish what you're currently doing.");
return;
}
player.getInterfaceManager().open(new Component(275));
//CLear old data
for (int i = 0; i < 311; i++) {
player.getPacketDispatch().sendString("", 275, i);
}
// Title
player.getPacketDispatch().sendString("<col=ecf0f1>" + GameWorld.getName() + " Events</col>", 275, 2);
// Content
int lineId = 11;
for(GlobalEvent event : GlobalEvent.values()){
player.getPacketDispatch().sendString("<col=ecf0f1>" + event.getName(), 275, lineId++);
if (event.isActive())
player.getPacketDispatch().sendString("<col=8e44ad>(active)", 275, lineId++);
player.getPacketDispatch().sendString("<col=2c3e50>" + event.getDescription(), 275, lineId++);
}
}
/** /**
* Gets the yell prefix for the given player. * Gets the yell prefix for the given player.
* @param player The player. * @param player The player.

View file

@ -5,7 +5,6 @@ import org.crandor.game.component.ComponentDefinition;
import org.crandor.game.component.ComponentPlugin; import org.crandor.game.component.ComponentPlugin;
import org.crandor.game.content.global.Lamps; import org.crandor.game.content.global.Lamps;
import org.crandor.game.content.skill.Skills; import org.crandor.game.content.skill.Skills;
import org.crandor.game.events.GlobalEvent;
import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.entity.player.link.audio.Audio; import org.crandor.game.node.entity.player.link.audio.Audio;
import org.crandor.game.node.item.Item; import org.crandor.game.node.item.Item;
@ -87,7 +86,7 @@ public final class ExperienceLampInterface extends ComponentPlugin {
experience /= 2; experience /= 2;
} }
} else { } else {
player.getDialogueInterpreter().open(70099, new Object[] { "The lamp gives you " + (experience * (Skills.EXPERIENCE_MULTIPLIER * (GlobalEvent.XP_FEVER.isActive() ? 2 : 1))) + " " + Skills.SKILL_NAME[skillType.skill] + " experience." }); player.getDialogueInterpreter().open(70099, new Object[] { "The lamp gives you " + (experience * (Skills.EXPERIENCE_MULTIPLIER)) + " " + Skills.SKILL_NAME[skillType.skill] + " experience." });
} }
player.getSkills().addExperience(skillType.skill, experience, false); player.getSkills().addExperience(skillType.skill, experience, false);
} }

View file

@ -27,7 +27,7 @@ public class TutorialCompletionDialogue extends DialoguePlugin {
/** /**
* The starter pack of items. * The starter pack of items.
*/ */
private static final Item[] STARTER_PACK = new Item[] { new Item(995, 25000), new Item(590, 1), new Item(303, 1), new Item(380, 20), new Item(1925, 1), new Item(1931, 1), new Item(8007, 3), new Item(4447, 1), new Item(2741, 1), new Item(14775, 1) }; private static final Item[] STARTER_PACK = new Item[] { new Item(1351, 1), new Item(590, 1), new Item(303, 1), new Item(315, 1), new Item(1925, 1), new Item(1931, 1), new Item(2309, 1), new Item(1265, 1), new Item(1205, 1), new Item(1277, 1), new Item(1171, 1), new Item(841, 1), new Item(882, 25), new Item(556, 25), new Item(558, 15), new Item(555, 6), new Item(557, 4), new Item(559, 2) };
/** /**
* Represents the rune items. * Represents the rune items.