Hook into Parties
SecurityVillagers offers a developer API to get information about protected entities and handle plugin events.
#Importing SecurityVillagers
To add the API to your project you can use use Maven, Gradle or manual adding in classpath.
#Maven
<repositories><repository><id>alessiodp-repo</id><url>https://repo.alessiodp.com/releases/</url></repository></repositories><dependencies><dependency><groupId>com.alessiodp.securityvillagers</groupId><artifactId>securityvillagers-api</artifactId><version>2.14.5</version><scope>provided</scope></dependency></dependencies>
#Gradle
repositories {maven {name = 'alessiodp-repo'url = 'https://repo.alessiodp.com/releases/'}}dependencies {compileOnly group: 'com.alessiodp.securityvillagers', name: 'securityvillagers-api', version: '2.14.5'}
#Usage
Your plugin must loaded after Parties so you have to define this behavior in plugin.yml
of your plugin by inserting Parties
as depend (or soft-depend):
depend: [SecurityVillagers]softdepend: [SecurityVillagers]
Before hook into it, be sure its enabled!
if (getServer().getPluginManager().getPlugin("SecurityVillagers") != null) {if (getServer().getPluginManager().getPlugin("SecurityVillagers").isEnabled()) {// SecurityVillagers is enabled}}
Then you can take the instance of SecurityVillagers:
SecurityVillagersAPI api = SecurityVillagers.getApi();
#API Methods
SecurityVillagers offers a class called SecurityVillagersAPI
, you can declare it to call API methods. This is how you can use it:
SecurityVillagersAPI api = SecurityVillagers.getApi();// Get a list of protected entitiesList<UUID> entities = api.getProtectedEntities();// Get the entity selected by a playerEntity entity = api.getSelectedEntity(simplePlayer);
#Event handlers
SecurityVillagers offers some events open to handle, you can hook into them like every Bukkit listener.
@EventHandlerpublic void onPlayerChat(SecurityVillagersDamageEvent event) {if (event.getAttackResult() == AttackResult.SUCCESS) {// Even if the attack is gonna be a success, prevent it by changing it into MELEE deny resultevent.setAttackResult(AttackResult.MELEE);// The user will receive a message like "you cannot hit X"}}@EventHandlerpublic void onPlayerChat(SecurityVillagersProtectionChangeEvent event) {// Prevent protection changeevent.setCancelled(true);}
#JavaDoc
You can find the JavaDoc here.