Initial commit

This commit is contained in:
ohAlee 2023-01-02 12:06:57 +01:00
parent 59a0925b24
commit 3414059055
5 changed files with 12 additions and 26 deletions

View File

@ -4,7 +4,7 @@
<component name="FrameworkDetectionExcludesConfiguration"> <component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" /> <file type="web" url="file://$PROJECT_DIR$" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="corretto-17" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

View File

@ -29,7 +29,6 @@ dependencies {
compileOnly("io.papermc.paper:paper-api:1.19.2-R0.1-SNAPSHOT") compileOnly("io.papermc.paper:paper-api:1.19.2-R0.1-SNAPSHOT")
implementation 'com.theokanning.openai-gpt3-java:client:0.8.1' implementation 'com.theokanning.openai-gpt3-java:client:0.8.1'
api 'com.github.ben-manes.caffeine:caffeine:3.1.1'
compileOnly 'org.checkerframework:checker-qual:3.21.2' compileOnly 'org.checkerframework:checker-qual:3.21.2'
compileOnly 'org.jetbrains:annotations:23.0.0' compileOnly 'org.jetbrains:annotations:23.0.0'
@ -43,8 +42,6 @@ dependencies {
shadowJar { shadowJar {
archiveFileName = "MinecraftGPT-${project.ext.fullVersion}.jar" archiveFileName = "MinecraftGPT-${project.ext.fullVersion}.jar"
relocate 'com.github.benmanes.caffeine', 'it.ohalee.minecraftgpt.lib.caffeine'
} }
artifacts { artifacts {

View File

@ -1,38 +1,30 @@
package it.ohalee.minecraftgpt; package it.ohalee.minecraftgpt;
import com.github.benmanes.caffeine.cache.Cache; import com.google.common.cache.*;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.RemovalCause;
import it.ohalee.minecraftgpt.command.GPTCommand; import it.ohalee.minecraftgpt.command.GPTCommand;
import it.ohalee.minecraftgpt.handler.PlayerHandlers;
import lombok.Getter; import lombok.Getter;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class Main extends JavaPlugin { public class Main extends JavaPlugin {
private final ExecutorService executor;
@Getter @Getter
private Cache<Player, StringBuilder> cache; private Cache<Player, StringBuilder> cache;
public Main() {
executor = Executors.newSingleThreadExecutor();
}
@Override @Override
public void onEnable() { public void onEnable() {
cache = Caffeine.newBuilder() cache = CacheBuilder.newBuilder()
.expireAfterWrite(30, TimeUnit.MINUTES) .expireAfterWrite(30, TimeUnit.MINUTES)
.executor(executor) .removalListener((RemovalListener<Player, StringBuilder>) notification -> {
.removalListener((key, value, cause) -> { if (notification.getCause() == RemovalCause.EXPIRED && notification.getKey() != null) {
if (key != null && cause == RemovalCause.EXPIRED) { notification.getKey().sendMessage("ChatGPT has disconnected.");
((Player) key).sendMessage("ChatGPT has disconnected.");
} }
}) }).build();
.build();
getServer().getPluginManager().registerEvents(new PlayerHandlers(this), this);
getCommand("chatgpt").setExecutor(new GPTCommand(this)); getCommand("chatgpt").setExecutor(new GPTCommand(this));
@ -41,8 +33,6 @@ public class Main extends JavaPlugin {
@Override @Override
public void onDisable() { public void onDisable() {
executor.shutdown();
getLogger().info("Plugin disabled!"); getLogger().info("Plugin disabled!");
} }

View File

@ -8,7 +8,7 @@ import java.util.concurrent.CompletableFuture;
public class OpenAI { public class OpenAI {
private static final OpenAiService service = new OpenAiService(""); private static final OpenAiService service = new OpenAiService("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", 0);
public static CompletableFuture<String> getResponse(StringBuilder cached, String message) { public static CompletableFuture<String> getResponse(StringBuilder cached, String message) {
cached.append("\nHuman:").append(message).append("\nAI:"); cached.append("\nHuman:").append(message).append("\nAI:");

View File

@ -27,14 +27,13 @@ public class PlayerHandlers implements Listener {
if (this.plugin.getCache().asMap().containsKey(player)) { if (this.plugin.getCache().asMap().containsKey(player)) {
e.setCancelled(true); e.setCancelled(true);
player.sendMessage(ChatColor.AQUA + "You: " + ChatColor.GRAY + e.getMessage());
OpenAI.getResponse(plugin.getCache().getIfPresent(player), e.getMessage()).whenComplete((response, throwable) -> { OpenAI.getResponse(plugin.getCache().getIfPresent(player), e.getMessage()).whenComplete((response, throwable) -> {
if (throwable != null) { if (throwable != null) {
throwable.printStackTrace(); throwable.printStackTrace();
player.sendMessage(ChatColor.RED + "An error occurred while processing your message."); player.sendMessage(ChatColor.RED + "An error occurred while processing your message.");
return; return;
} }
player.sendMessage(ChatColor.AQUA + "You: " + ChatColor.GRAY + e.getMessage());
player.sendMessage(ChatColor.AQUA + "AI: " + ChatColor.GREEN + response); player.sendMessage(ChatColor.AQUA + "AI: " + ChatColor.GREEN + response);
}); });
} }