Initial commit
This commit is contained in:
parent
59a0925b24
commit
3414059055
@ -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>
|
@ -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 {
|
||||||
|
@ -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!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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:");
|
||||||
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user