Skip to content

Commit

Permalink
Perfect tag functionality :D
Browse files Browse the repository at this point in the history
Wooo
  • Loading branch information
mcmonkey4eva committed Nov 30, 2014
1 parent b4e8da7 commit e746b09
Showing 1 changed file with 9 additions and 14 deletions.
23 changes: 9 additions & 14 deletions src/main/java/net/aufdemrand/denizen/tags/TagManager.java
Expand Up @@ -9,10 +9,9 @@
import net.aufdemrand.denizen.utilities.depends.Depends;
import net.aufdemrand.denizencore.tags.TagContext;
import net.aufdemrand.denizencore.utilities.CoreUtilities;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

import java.lang.annotation.Annotation;
import java.lang.annotation.*;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -63,8 +62,11 @@ public void registerCoreTags() {
new NotableLocationTags(denizen);

denizen.getServer().getPluginManager().registerEvents(this, denizen);
registerTagEvents(this);
}

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public static @interface TagEvents {
}

Expand All @@ -73,20 +75,13 @@ public void registerCoreTags() {

public static void registerTagEvents(Object o) {
for (Method method: o.getClass().getMethods()) {
boolean has = false;
for (Annotation annotation: method.getAnnotations()) {
if (annotation.getClass() == TagEvents.class) {

This comment has been minimized.

Copy link
@fullwall

fullwall Dec 12, 2014

Contributor

For future reference: getClass() returns .class, you need annotationType()

This comment has been minimized.

Copy link
@mcmonkey4eva

mcmonkey4eva Dec 12, 2014

Author Member

... did I really - I'm am genoius. hits self with hammer

has = true;
break;
}
if (!method.isAnnotationPresent(TagManager.TagEvents.class)) {
continue;
}
/*if (!has) {
break;
}*/
Class[] parameters = method.getParameterTypes();
if (parameters.length != 1 || parameters[0] != ReplaceableTagEvent.class) {
//dB.echoError("Class " + o.getClass().getCanonicalName() + " has a method "
// + method.getName() + " that is targeted at the event manager but has invalid parameters.");
dB.echoError("Class " + o.getClass().getCanonicalName() + " has a method "
+ method.getName() + " that is targeted at the event manager but has invalid parameters.");
break;
}
registerMethod(method, o);
Expand Down Expand Up @@ -230,7 +225,7 @@ public static String escapeOutput(String input) {
return new String(data);
}

@EventHandler
@TagManager.TagEvents
public void fetchObject(ReplaceableTagEvent event) {
if (!event.getName().contains("@")) return;

Expand Down

0 comments on commit e746b09

Please sign in to comment.