Fix null guild and shutdown message

This commit is contained in:
2026-06-27 01:44:53 -05:00
parent 594c71b37e
commit 0d5b23211a
4 changed files with 83 additions and 62 deletions

View File

@@ -240,7 +240,7 @@ public class BiscuitGuild {
logger.error("Error retrieving Text Channel from YouTube feed file.");
return null;
}
YTFeed feed = new YTFeed(alias, textChannel, youTubeChannelURL, message);
YTFeed feed = new YTFeed(this, alias, textChannel, youTubeChannelURL, message);
feed.setLastVideo(lastVideo);
feed.setLastVideoTimestamp(lastVideoTimestamp);
return new YTFeedConfig(this, feed);
@@ -260,7 +260,7 @@ public class BiscuitGuild {
if(guild == null || ytfeeds.containsKey(alias)) {
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();
feed.setLastVideo(lastURL);

View File

@@ -2,9 +2,11 @@ package com.fpghoti.biscuit.plugin;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.pf4j.DefaultPluginManager;
import org.pf4j.PluginManager;
import org.pf4j.PluginWrapper;
public class PluginController implements Iterable<BiscuitPlugin> {
@@ -13,12 +15,12 @@ public class PluginController implements Iterable<BiscuitPlugin>{
public PluginController() {
pluginManager = new DefaultPluginManager();
plugins = new ArrayList<BiscuitPlugin>();
plugins = new ArrayList<>();
}
@Override
public Iterator<BiscuitPlugin> iterator() {
return new ArrayList<BiscuitPlugin>(plugins).iterator();
return new ArrayList<>(plugins).iterator();
}
public void registerPlugin(BiscuitPlugin plugin) {
@@ -36,16 +38,35 @@ public class PluginController implements Iterable<BiscuitPlugin>{
}
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() {
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() {
stopPlugins();
unloadPlugins();
plugins.clear();
}
@@ -57,5 +78,4 @@ public class PluginController implements Iterable<BiscuitPlugin>{
}
return false;
}
}

View File

@@ -21,6 +21,7 @@ public class YTEntry {
this.id = id;
this.title = title;
this.author = author;
this.timestamp = timestamp;
this.description = description;
this.thumbnail = thumbnail;
}

View File

@@ -28,8 +28,8 @@ public class YTFeed {
private String lastVideo;
private String lastVideoTimestamp;
public YTFeed(String alias, TextChannel channel, String channelURL, String message) {
this.guild = BiscuitGuild.getBiscuitGuild(channel.getGuild());
public YTFeed(BiscuitGuild guild, String alias, TextChannel channel, String channelURL, String message) {
this.guild = guild;
this.alias = alias;
this.channel = channel;
this.channelURL = channelURL;