Skip to content
This repository has been archived by the owner on Dec 23, 2017. It is now read-only.

Commit

Permalink
update to latest RB; fixes issue #13
Browse files Browse the repository at this point in the history
  • Loading branch information
angelsl committed Jan 20, 2012
1 parent fddebeb commit 90795b3
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 18 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.0.1-R1</version>
<version>1.1-R1-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/org/angelsl/bukkit/jxpl/ScriptLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,11 @@ public void execute(Listener listener, Event event) {
};
}

@Override
public Map<Class<? extends Event>, Set<RegisteredListener>> createRegisteredListeners(Listener listener, Plugin plugin) {
throw new UnsupportedOperationException("Script plugins do not have separate listener classes.");
}

public void enablePlugin(Plugin plugin) {
if (!(plugin instanceof ScriptPlugin)) {
throw new IllegalArgumentException("Wrong PluginLoader called to enable plugin!");
Expand Down
40 changes: 23 additions & 17 deletions src/main/java/org/angelsl/bukkit/jxpl/ScriptPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,11 @@ public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
return null;
}

@Override
public Logger getLogger() {
return logger;
}

@Override
public void setNaggable(boolean canNag) {
naggable = canNag;
Expand Down Expand Up @@ -170,6 +175,24 @@ public void saveConfig() {
}
}

@Override
public void saveDefaultConfig() {
if (configFile != null && !configFile.exists()) {
YamlConfiguration def = getDefaultConfig();
try {
if (def != null) def.save(configFile);
} catch (IOException e) {
log(Level.SEVERE, "Failed to save default configuration file.", e);
}
}
}

@Override
public void saveResource(String resourcePath, boolean replace) {
// i have no embedded resources..
throw new UnsupportedOperationException("ScriptPlugins do not have embedded resources; not saving resource.");
}

@Override
public void reloadConfig() {
config = YamlConfiguration.loadConfiguration(configFile);
Expand Down Expand Up @@ -198,23 +221,6 @@ public boolean isEnabled() {
public void onDisable() {
isEnabled = false;
tryInvoke("onDisable", false);
deregisterListeners();
}

private void deregisterListeners() {
PluginManager pm = getServer().getPluginManager();
if (!(pm instanceof SimplePluginManager)) return;
try {
EnumMap<Event.Type, SortedSet<RegisteredListener>> map = (EnumMap<Event.Type, SortedSet<RegisteredListener>>) Utils.getFieldHelper(pm, "listeners");
for (SortedSet<RegisteredListener> ssrl : map.values()) {
ArrayList<RegisteredListener> toRemove = new ArrayList<RegisteredListener>();
for (RegisteredListener rl : ssrl)
if (rl.getPlugin() == this) toRemove.add(rl);
ssrl.removeAll(toRemove);
}
} catch (Throwable t) {
log(Level.SEVERE, "Failed to deregister listeners on disable! Please report this with your (Craft)Bukkit version!", t);
}
}

@Override
Expand Down

0 comments on commit 90795b3

Please sign in to comment.