Fix null guild and shutdown message
This commit is contained in:
@@ -240,7 +240,7 @@ public class BiscuitGuild {
|
|||||||
logger.error("Error retrieving Text Channel from YouTube feed file.");
|
logger.error("Error retrieving Text Channel from YouTube feed file.");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
YTFeed feed = new YTFeed(alias, textChannel, youTubeChannelURL, message);
|
YTFeed feed = new YTFeed(this, alias, textChannel, youTubeChannelURL, message);
|
||||||
feed.setLastVideo(lastVideo);
|
feed.setLastVideo(lastVideo);
|
||||||
feed.setLastVideoTimestamp(lastVideoTimestamp);
|
feed.setLastVideoTimestamp(lastVideoTimestamp);
|
||||||
return new YTFeedConfig(this, feed);
|
return new YTFeedConfig(this, feed);
|
||||||
@@ -260,7 +260,7 @@ public class BiscuitGuild {
|
|||||||
if(guild == null || ytfeeds.containsKey(alias)) {
|
if(guild == null || ytfeeds.containsKey(alias)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
YTFeed feed = new YTFeed(alias, channel, channelURL, message);
|
YTFeed feed = new YTFeed(this, alias, channel, channelURL, message);
|
||||||
|
|
||||||
String lastURL =feed.getEntries().getLast().getURL();
|
String lastURL =feed.getEntries().getLast().getURL();
|
||||||
feed.setLastVideo(lastURL);
|
feed.setLastVideo(lastURL);
|
||||||
|
|||||||
@@ -2,27 +2,29 @@ package com.fpghoti.biscuit.plugin;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.pf4j.DefaultPluginManager;
|
import org.pf4j.DefaultPluginManager;
|
||||||
import org.pf4j.PluginManager;
|
import org.pf4j.PluginManager;
|
||||||
|
import org.pf4j.PluginWrapper;
|
||||||
|
|
||||||
public class PluginController implements Iterable<BiscuitPlugin>{
|
public class PluginController implements Iterable<BiscuitPlugin> {
|
||||||
|
|
||||||
private PluginManager pluginManager;
|
private PluginManager pluginManager;
|
||||||
private ArrayList<BiscuitPlugin> plugins;
|
private ArrayList<BiscuitPlugin> plugins;
|
||||||
|
|
||||||
public PluginController() {
|
public PluginController() {
|
||||||
pluginManager = new DefaultPluginManager();
|
pluginManager = new DefaultPluginManager();
|
||||||
plugins = new ArrayList<BiscuitPlugin>();
|
plugins = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Iterator<BiscuitPlugin> iterator() {
|
public Iterator<BiscuitPlugin> iterator() {
|
||||||
return new ArrayList<BiscuitPlugin>(plugins).iterator();
|
return new ArrayList<>(plugins).iterator();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerPlugin(BiscuitPlugin plugin) {
|
public void registerPlugin(BiscuitPlugin plugin) {
|
||||||
if(!contains(plugin)) {
|
if (!contains(plugin)) {
|
||||||
plugins.add(plugin);
|
plugins.add(plugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,26 +38,44 @@ public class PluginController implements Iterable<BiscuitPlugin>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void stopPlugins() {
|
public void stopPlugins() {
|
||||||
pluginManager.stopPlugins();
|
List<PluginWrapper> startedPlugins = new ArrayList<>(pluginManager.getStartedPlugins());
|
||||||
|
|
||||||
|
for (PluginWrapper plugin : startedPlugins) {
|
||||||
|
try {
|
||||||
|
pluginManager.stopPlugin(plugin.getPluginId());
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Failed to stop plugin: " + plugin.getPluginId());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unloadPlugins() {
|
public void unloadPlugins() {
|
||||||
pluginManager.unloadPlugins();
|
List<PluginWrapper> loadedPlugins = new ArrayList<>(pluginManager.getPlugins());
|
||||||
|
|
||||||
|
for (PluginWrapper plugin : loadedPlugins) {
|
||||||
|
try {
|
||||||
|
pluginManager.unloadPlugin(plugin.getPluginId());
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Failed to unload plugin: " + plugin.getPluginId());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void shutdownPlugins() {
|
public void shutdownPlugins() {
|
||||||
stopPlugins();
|
stopPlugins();
|
||||||
unloadPlugins();
|
unloadPlugins();
|
||||||
|
|
||||||
plugins.clear();
|
plugins.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean contains(BiscuitPlugin plugin) {
|
public boolean contains(BiscuitPlugin plugin) {
|
||||||
for(BiscuitPlugin pl : plugins) {
|
for (BiscuitPlugin pl : plugins) {
|
||||||
if(plugin.getID().equals(pl.getID())) {
|
if (plugin.getID().equals(pl.getID())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -21,6 +21,7 @@ public class YTEntry {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
this.title = title;
|
this.title = title;
|
||||||
this.author = author;
|
this.author = author;
|
||||||
|
this.timestamp = timestamp;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.thumbnail = thumbnail;
|
this.thumbnail = thumbnail;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ public class YTFeed {
|
|||||||
private String lastVideo;
|
private String lastVideo;
|
||||||
private String lastVideoTimestamp;
|
private String lastVideoTimestamp;
|
||||||
|
|
||||||
public YTFeed(String alias, TextChannel channel, String channelURL, String message) {
|
public YTFeed(BiscuitGuild guild, String alias, TextChannel channel, String channelURL, String message) {
|
||||||
this.guild = BiscuitGuild.getBiscuitGuild(channel.getGuild());
|
this.guild = guild;
|
||||||
this.alias = alias;
|
this.alias = alias;
|
||||||
this.channel = channel;
|
this.channel = channel;
|
||||||
this.channelURL = channelURL;
|
this.channelURL = channelURL;
|
||||||
|
|||||||
Reference in New Issue
Block a user