Integration Examples
Real-world examples of integrating Vexor Core plugins.
Example 1: Automated Door Control
Integrate PivotPoly doors with redstone or other triggers:
public class AutoDoorPlugin extends JavaPlugin implements Listener {
private PivotPoly pivotPoly;
@Override
public void onEnable() {
pivotPoly = (PivotPoly) Bukkit.getPluginManager().getPlugin("PivotPoly");
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onRedstone(BlockRedstoneEvent event) {
if (event.getNewCurrent() <= 0) return;
// Find nearby door
Location loc = event.getBlock().getLocation();
AnimatedDoor nearbyDoor = findNearestDoor(loc, 5);
if (nearbyDoor != null) {
nearbyDoor.toggle();
}
}
private AnimatedDoor findNearestDoor(Location loc, double radius) {
DoorManager manager = pivotPoly.getDoorManager();
for (AnimatedDoor door : manager.getDoors().values()) {
Location pivot = door.getPivot().toLocation(door.getWorld());
if (pivot.distance(loc) <= radius) {
return door;
}
}
return null;
}
}
Example 2: Team-Based Supply Crates
Integrate CoreTeams with SupplyCrates:
public class TeamCratesPlugin extends JavaPlugin implements Listener {
private CoreTeams coreTeams;
private SupplyCrates supplyCrates;
@Override
public void onEnable() {
coreTeams = (CoreTeams) Bukkit.getPluginManager().getPlugin("CoreTeams");
supplyCrates = (SupplyCrates) Bukkit.getPluginManager().getPlugin("SupplyCrates");
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onCrateOpen(CrateOpenEvent event) {
Player player = event.getPlayer();
Team team = coreTeams.getTeamManager().getPlayerTeam(player);
if (team != null) {
// Enhanced loot for team members
event.setLootMultiplier(1.5);
// Notify team
team.broadcast(player.getName() + " opened a supply crate!");
}
}
}
Example 3: Economy Integration
Track and reward plugin usage:
public class RewardPlugin extends JavaPlugin implements Listener {
private Economy economy; // Vault
private PvPManager pvpManager;
@Override
public void onEnable() {
setupEconomy();
pvpManager = (PvPManager) Bukkit.getPluginManager().getPlugin("PvPManager");
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPvPKill(PlayerKillEvent event) {
Player killer = event.getKiller();
Player victim = event.getVictim();
// Reward killer
economy.depositPlayer(killer, 100.0);
killer.sendMessage("§a+$100 for PvP kill!");
// Penalty for victim
economy.withdrawPlayer(victim, 50.0);
}
}
Complete integration examples! See individual plugin APIs for more.