Skip to content

Commit

Permalink
Rewrote "vehicle created" in ScriptEvent format.
Browse files Browse the repository at this point in the history
  • Loading branch information
Talamar1 committed Jul 7, 2015
1 parent ab439bb commit 973aca9
Show file tree
Hide file tree
Showing 3 changed files with 97 additions and 32 deletions.
1 change: 1 addition & 0 deletions src/main/java/net/aufdemrand/denizen/Denizen.java
Expand Up @@ -683,6 +683,7 @@ public void onEnable() {
ScriptEvent.registerScriptEvent(new SlimeSplitsScriptEvent());
ScriptEvent.registerScriptEvent(new VehicleCollidesBlockScriptEvent());
ScriptEvent.registerScriptEvent(new VehicleCollidesEntityScriptEvent());
ScriptEvent.registerScriptEvent(new VehicleCreatedScriptEvent());
ScriptEvent.registerScriptEvent(new VehicleDamagedScriptEvent());
ScriptEvent.registerScriptEvent(new VehicleDestroyedScriptEvent());
ScriptEvent.registerScriptEvent(new VehicleMoveScriptEvent());
Expand Down
@@ -0,0 +1,96 @@
package net.aufdemrand.denizen.events.entity;

import net.aufdemrand.denizen.events.BukkitScriptEvent;
import net.aufdemrand.denizen.objects.dEntity;
import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizencore.objects.dObject;
import net.aufdemrand.denizencore.scripts.containers.ScriptContainer;
import net.aufdemrand.denizencore.utilities.CoreUtilities;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.vehicle.VehicleCreateEvent;

import java.util.HashMap;

public class VehicleCreatedScriptEvent extends BukkitScriptEvent implements Listener {

// <--[event]
// @Events
// vehicle created (in <area>)
// <vehicle> created (in <area>)
//
// @Triggers when a vehicle created in the slightest.
//
// @Context
// <context.vehicle> returns the dEntity of the vehicle.
// <context.from> returns the location of where the vehicle was.
// <context.to> returns the location of where the vehicle is.
//
// -->

public VehicleCreatedScriptEvent() {
instance = this;
}

public static VehicleCreatedScriptEvent instance;
public dEntity vehicle;
public VehicleCreateEvent event;

@Override
public boolean couldMatch(ScriptContainer scriptContainer, String s) {
String lower = CoreUtilities.toLowerCase(s);
return CoreUtilities.xthArgEquals(1, lower, "created");
}

@Override
public boolean matches(ScriptContainer scriptContainer, String s) {
String lower = CoreUtilities.toLowerCase(s);
String veh = CoreUtilities.getXthArg(0, lower);
if (!vehicle.matchesEntity(veh)) {
return false;
}

if (!runInCheck(scriptContainer, s, lower, vehicle.getLocation())) {
return false;
}

return true;
}

// TODO: Can the vehicle be an NPC?

@Override
public String getName() {
return "VehicleCreated";
}

@Override
public void init() {
Bukkit.getServer().getPluginManager().registerEvents(this, DenizenAPI.getCurrentInstance());
}

@Override
public void destroy() {
VehicleCreateEvent.getHandlerList().unregister(this);
}

@Override
public boolean applyDetermination(ScriptContainer container, String determination) {
return super.applyDetermination(container, determination);
}

@Override
public HashMap<String, dObject> getContext() {
HashMap<String, dObject> context = super.getContext();
context.put("vehicle", vehicle);
return context;
}

@EventHandler
public void onVehicleMove(VehicleCreateEvent event) {
vehicle = new dEntity(event.getVehicle());
this.event = event;
fire();
}
}
Expand Up @@ -1120,36 +1120,4 @@ public void playerToggleSprint(PlayerToggleSprintEvent event) {
event.setCancelled(true);
}


/////////////////////
// VEHICLE EVENTS
/////////////////


// <--[event]
// @Events
// vehicle created
// <vehicle> created
//
// @Triggers when a vehicle is created.
// @Context
// <context.vehicle> returns the dEntity of the vehicle.
//
// -->
@EventHandler
public void vehicleCreate(VehicleCreateEvent event) {

Map<String, dObject> context = new HashMap<String, dObject>();

dEntity vehicle = new dEntity(event.getVehicle());

context.put("vehicle", vehicle);

doEvents(Arrays.asList
("vehicle created",
vehicle.identifyType() + " created",
vehicle.identifySimple() + " created"),
null, null, context, true);
}

}

0 comments on commit 973aca9

Please sign in to comment.