Plugins System (#510)

* Started Ripping Plugin System From Astraeus

*Currently only ClickingButtons Support
*Also Started Using The Logout Button Plugin From Astraeus

* NpcFirstClickEvent setup for plugins

also made Man & Women chat work through this

* Server: Add Google Collect Lib

* Server: NpcSecondClickEvent setup for plugins

also handle pickpocketing npc clicking through plugin

* Server: NpcThirdClickEvent setup for plugins

* Server: Remove conflicting action for Secondclicking npc id 3

* Server: ItemFirstClickEvent setup for plugins

Also Handle Yo-Yo First Click Through This

* Server: ItemOnItemEvent setup for plugins

Also Handle Black Candle Lighting With Tinderbox Through this

* Server: ItemOnNpcEvent setup for plugins

* Server: ItemOnObjectEvent setup for plugins

Also Handle Fillable Items Through This

* Server: ItemSecondClickEvent & ItemThirdClickEvent setup for plugins

Also Handle Yo-Yo Actions Through This

* Server: ObjectFirstClickEvent setup for plugins

Also Handle FirstClick Mining Actions Through This

* Server: ObjectSecondClickEvent setup for plugins

Also Handle Stall Thieving Actions Through This

* Server: ObjectThirdClickEvent setup for plugins

* Server: ObjectFourthClickEvent setup for plugins

Also Handle Fourth Click Farming Object Actions Through This

* Server: MagicOnItemEvent setup for plugins

Also Handle SuperHeat Through This

* More mage training arena (#509)

* Fixup points display

* Only allow players to deposit up to 12k at one time

* Apple damage and play animation

* Update order or prices

* Update Telekinetic.java

(cherry picked from commit ab3b1e9731)

Co-authored-by: RedSparr0w <RedSparr0w@users.noreply.github.com>
Co-authored-by: Danial <admin@redsparr0w.com>
This commit is contained in:
Josh Shippam
2021-10-09 00:20:57 +01:00
committed by GitHub
parent a693615e2e
commit 7d64e2298f
74 changed files with 1799 additions and 75 deletions
@@ -9,12 +9,11 @@ import java.util.Map;
import java.util.Queue;
import com.everythingrs.hiscores.Hiscores;
import com.rs2.event.*;
import com.rs2.plugin.PluginService;
import org.apache.mina.common.IoSession;
import com.rs2.GameConstants;
import com.rs2.GameEngine;
import com.rs2.event.CycleEvent;
import com.rs2.event.CycleEventContainer;
import com.rs2.event.CycleEventHandler;
import com.rs2.game.content.BankPin;
import com.rs2.game.content.EmoteHandler;
import com.rs2.game.content.combat.CombatAssistant;
@@ -166,7 +165,7 @@ public abstract class Player {
private SingleGates singleGates = new SingleGates();
private DoubleGates doubleGates = new DoubleGates();
public int lastMainFrameInterface = -1; //Possibly used in future to prevent packet exploits
public boolean isPreaching() {
return preaching;
}
@@ -742,6 +741,68 @@ public abstract class Player {
}
}
/**
* This worlds event provider.
*/
private static final UniversalEventProvider eventProvider = new UniversalEventProvider();
/**
* The service for plugins.
*/
private static final PluginService pluginService = new PluginService();
/**
* Posts an event to this worlds event provider.
*
* @param player
* The player to post the event for.
* @param event
* The event to post.
*/
public <E extends Event> void post(Player player, E event) {
eventProvider.post(player, event);
}
/**
* Posts an event to this world's event provider.
*
* @param event
* The event to post.
*/
public <E extends Event> void post(E event) {
post(this, event);
}
/**
* Provides an event subscriber to this worlds event provider.
*
* @param subscriber
* The event subscriber.
*/
public static <E extends Event> void provideSubscriber(EventSubscriber<E> subscriber) {
eventProvider.provideSubscriber(subscriber);
}
/**
* Deprives an event subscriber to this worlds event provider.
*
* @param subscriber
* The event subscriber.
*/
public <E extends Event> void depriveSubscriber(EventSubscriber<E> subscriber) {
eventProvider.depriveSubscriber(subscriber);
}
/**
* Gets the service for plugins.
*/
public static PluginService getPluginService() {
return pluginService;
}
public UniversalEventProvider getSubscribers() {
return eventProvider;
}
public int packetSize = 0, packetType = -1;
public boolean wildernessWarning;