Skip to content

Commit

Permalink
Towny and GriefPrevention additions (#382)
Browse files Browse the repository at this point in the history
* Add new towny features, fix some existing issues

* Replace towny claimed_cuboid with cuboids

* Add GP claim events, fix issues from PR review

* Register new gpclaim events

* Modernize gp claim tag

* Modernize towny world properties
  • Loading branch information
mergu committed Aug 20, 2022
1 parent 7ccad93 commit a63c195
Show file tree
Hide file tree
Showing 14 changed files with 736 additions and 70 deletions.
2 changes: 1 addition & 1 deletion lib
Submodule lib updated 1 files
+ GriefPrevention.jar
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -146,7 +146,7 @@
<dependency>
<groupId>me.ryanhamshire</groupId>
<artifactId>GriefPrevention</artifactId>
<version>16.10</version>
<version>16.18</version>
<scope>system</scope>
<systemPath>${basedir}/lib/GriefPrevention.jar</systemPath>
</dependency>
Expand Down
@@ -1,11 +1,15 @@
package com.denizenscript.depenizen.bukkit.bridges;

import com.denizenscript.denizen.objects.WorldTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.tags.Attribute;
import com.denizenscript.denizencore.tags.ReplaceableTagEvent;
import com.denizenscript.denizencore.tags.TagManager;
import com.denizenscript.denizencore.tags.TagRunnable;
import com.denizenscript.depenizen.bukkit.Bridge;
import com.denizenscript.depenizen.bukkit.events.griefprevention.GPClaimChangedScriptEvent;
import com.denizenscript.depenizen.bukkit.events.griefprevention.GPClaimCreatedScriptEvent;
import com.denizenscript.depenizen.bukkit.events.griefprevention.GPClaimDeletedScriptEvent;
import com.denizenscript.depenizen.bukkit.properties.griefprevention.GriefPreventionPlayerProperties;
import com.denizenscript.depenizen.bukkit.objects.griefprevention.GriefPreventionClaimTag;
import com.denizenscript.denizen.objects.LocationTag;
Expand All @@ -15,16 +19,21 @@
import com.denizenscript.denizencore.events.ScriptEvent;
import com.denizenscript.denizencore.objects.ObjectFetcher;
import com.denizenscript.denizencore.objects.properties.PropertyParser;
import com.denizenscript.depenizen.bukkit.properties.griefprevention.GriefPreventionWorldProperties;
import me.ryanhamshire.GriefPrevention.Claim;
import me.ryanhamshire.GriefPrevention.GriefPrevention;

public class GriefPreventionBridge extends Bridge {

@Override
public void init() {
ObjectFetcher.registerWithObjectFetcher(GriefPreventionClaimTag.class);
ObjectFetcher.registerWithObjectFetcher(GriefPreventionClaimTag.class, GriefPreventionClaimTag.tagProcessor);
PropertyParser.registerProperty(GriefPreventionPlayerProperties.class, PlayerTag.class);
PropertyParser.registerProperty(GriefPreventionLocationProperties.class, LocationTag.class);
PropertyParser.registerProperty(GriefPreventionWorldProperties.class, WorldTag.class);
ScriptEvent.registerScriptEvent(GPClaimChangedScriptEvent.class);
ScriptEvent.registerScriptEvent(GPClaimCreatedScriptEvent.class);
ScriptEvent.registerScriptEvent(GPClaimDeletedScriptEvent.class);
ScriptEvent.registerScriptEvent(GPClaimEnterEvent.class);
TagManager.registerTagHandler(new TagRunnable.RootForm() {
@Override
Expand Down
@@ -1,13 +1,14 @@
package com.denizenscript.depenizen.bukkit.bridges;

import com.denizenscript.depenizen.bukkit.events.towny.PlayerEntersTownScriptEvent;
import com.denizenscript.depenizen.bukkit.events.towny.PlayerExitsTownScriptEvent;
import com.denizenscript.denizen.objects.WorldTag;
import com.denizenscript.depenizen.bukkit.events.towny.*;
import com.denizenscript.depenizen.bukkit.properties.towny.TownyCuboidProperties;
import com.denizenscript.depenizen.bukkit.properties.towny.TownyLocationProperties;
import com.denizenscript.depenizen.bukkit.objects.towny.NationTag;
import com.denizenscript.depenizen.bukkit.objects.towny.TownTag;
import com.denizenscript.depenizen.bukkit.Bridge;
import com.denizenscript.depenizen.bukkit.properties.towny.TownyPlayerProperties;
import com.denizenscript.depenizen.bukkit.properties.towny.TownyWorldProperties;
import com.palmergames.bukkit.towny.TownyAPI;
import com.palmergames.bukkit.towny.object.Nation;
import com.palmergames.bukkit.towny.object.Town;
Expand All @@ -34,8 +35,12 @@ public void init() {
PropertyParser.registerProperty(TownyPlayerProperties.class, PlayerTag.class);
PropertyParser.registerProperty(TownyLocationProperties.class, LocationTag.class);
PropertyParser.registerProperty(TownyCuboidProperties.class, CuboidTag.class);
PropertyParser.registerProperty(TownyWorldProperties.class, WorldTag.class);
ScriptEvent.registerScriptEvent(PlayerClaimsPlotScriptEvent.class);
ScriptEvent.registerScriptEvent(PlayerCreatesTownScriptEvent.class);
ScriptEvent.registerScriptEvent(PlayerEntersTownScriptEvent.class);
ScriptEvent.registerScriptEvent(PlayerExitsTownScriptEvent.class);
ScriptEvent.registerScriptEvent(TownCreatedScriptEvent.class);
TagManager.registerTagHandler(new TagRunnable.RootForm() {
@Override
public void run(ReplaceableTagEvent event) {
Expand Down
@@ -0,0 +1,87 @@
package com.denizenscript.depenizen.bukkit.events.griefprevention;

import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizen.objects.PlayerTag;
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.scripts.ScriptEntryData;
import com.denizenscript.depenizen.bukkit.objects.griefprevention.GriefPreventionClaimTag;
import me.ryanhamshire.GriefPrevention.events.ClaimChangeEvent;
import me.ryanhamshire.GriefPrevention.events.ClaimExtendEvent;
import me.ryanhamshire.GriefPrevention.events.ClaimResizeEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

public class GPClaimChangedScriptEvent extends BukkitScriptEvent implements Listener {

// <--[event]
// @Events
// gp claim changed
//
// @Cancellable true
//
// @Triggers when a Grief Prevention claim is modified.
//
// @Context
// <context.old_claim> returns the GriefPreventionClaimTag of the old claim.
// <context.new_claim> returns the GriefPreventionClaimTag of the new claim.
// <context.source_type> returns the source of the change. Can be: PLAYER, SERVER, or AUTO_DEEPEN.
//
// @Plugin Depenizen, GriefPrevention
//
// @Player when source_type is player.
//
// @Group Depenizen
//
// -->

public GPClaimChangedScriptEvent() {
instance = this;
registerCouldMatcher("gp claim changed");
}

public static GPClaimChangedScriptEvent instance;
public ClaimChangeEvent event;
public Player player;
public String sourceType;

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

@Override
public ScriptEntryData getScriptEntryData() {
return new BukkitScriptEntryData(player != null ? PlayerTag.mirrorBukkitPlayer(player) : null, null);
}

@Override
public ObjectTag getContext(String name) {
switch (name) {
case "old_claim":
return new GriefPreventionClaimTag(event.getFrom());
case "new_claim":
return new GriefPreventionClaimTag(event.getTo());
case "source_type":
return new ElementTag(sourceType);
}
return super.getContext(name);
}

@EventHandler
public void onClaimChanged(ClaimChangeEvent event) {
this.event = event;
this.player = null;
this.sourceType = "server";
if (event instanceof ClaimExtendEvent) {
this.sourceType = "auto_deepen";
}
else if (event instanceof ClaimResizeEvent && ((ClaimResizeEvent) event).getModifier() instanceof Player) {
this.player = (Player) ((ClaimResizeEvent) event).getModifier();
this.sourceType = "player";
}
fire(event);
}
}
@@ -0,0 +1,73 @@
package com.denizenscript.depenizen.bukkit.events.griefprevention;

import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizen.objects.PlayerTag;
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.scripts.ScriptEntryData;
import com.denizenscript.depenizen.bukkit.objects.griefprevention.GriefPreventionClaimTag;
import me.ryanhamshire.GriefPrevention.events.ClaimCreatedEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

public class GPClaimCreatedScriptEvent extends BukkitScriptEvent implements Listener {

// <--[event]
// @Events
// gp claim created
//
// @Cancellable true
//
// @Triggers when a Grief Prevention claim is created.
//
// @Context
// <context.claim> returns the GriefPreventionClaimTag that is being created.
// <context.source_type> returns the source of the creation. Can be PLAYER or SERVER.
//
// @Plugin Depenizen, GriefPrevention
//
// @Player when source_type is player.
//
// @Group Depenizen
//
// -->

public GPClaimCreatedScriptEvent() {
instance = this;
registerCouldMatcher("gp claim created");
}

public static GPClaimCreatedScriptEvent instance;
public ClaimCreatedEvent event;
public String sourceType;

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

@Override
public ScriptEntryData getScriptEntryData() {
return new BukkitScriptEntryData(event.getCreator() instanceof Player ? PlayerTag.mirrorBukkitPlayer((Player) event.getCreator()) : null, null);
}

@Override
public ObjectTag getContext(String name) {
switch (name) {
case "claim":
return new GriefPreventionClaimTag(event.getClaim());
case "source_type":
return new ElementTag(sourceType);
}
return super.getContext(name);
}

@EventHandler
public void onClaimCreated(ClaimCreatedEvent event) {
this.event = event;
this.sourceType = event.getCreator() instanceof Player ? "player" : "server";
fire(event);
}
}
@@ -0,0 +1,53 @@
package com.denizenscript.depenizen.bukkit.events.griefprevention;

import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.depenizen.bukkit.objects.griefprevention.GriefPreventionClaimTag;
import me.ryanhamshire.GriefPrevention.events.ClaimDeletedEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

public class GPClaimDeletedScriptEvent extends BukkitScriptEvent implements Listener {

// <--[event]
// @Events
// gp claim deleted
//
// @Triggers when a Grief Prevention claim is deleted.
//
// @Context
// <context.claim> returns the GriefPreventionClaimTag being deleted.
//
// @Plugin Depenizen, GriefPrevention
//
// @Group Depenizen
//
// -->

public GPClaimDeletedScriptEvent() {
instance = this;
registerCouldMatcher("gp claim deleted");
}

public static GPClaimDeletedScriptEvent instance;
public ClaimDeletedEvent event;

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

@Override
public ObjectTag getContext(String name) {
if (name.equals("claim")) {
return new GriefPreventionClaimTag(event.getClaim());
}
return super.getContext(name);
}

@EventHandler
public void onClaimDeleted(ClaimDeletedEvent event) {
this.event = event;
fire(event);
}
}

0 comments on commit a63c195

Please sign in to comment.