First Maven Build & small issues with .java
This commit is contained in:
8
pom.xml
8
pom.xml
@@ -14,6 +14,14 @@
|
||||
<maven.compiler.target>21</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<repositories>
|
||||
<!-- This adds the Spigot Maven repository to the build -->
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<!-- Spigot API dependency -->
|
||||
<dependency>
|
||||
|
@@ -1,107 +1,50 @@
|
||||
import com.google.api.client.googleapis.auth.oauth2.Credential;
|
||||
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
|
||||
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
|
||||
import com.google.api.client.googleapis.http.HttpRequest;
|
||||
import com.google.api.client.googleapis.http.HttpRequestInitializer;
|
||||
import com.google.api.client.googleapis.json.JsonFactory;
|
||||
import com.google.api.client.googleapis.json.jackson2.JacksonFactory;
|
||||
import com.google.api.client.json.JsonFactory;
|
||||
import com.google.api.client.json.jackson2.JacksonFactory;
|
||||
import com.google.api.services.youtube.YouTube;
|
||||
import com.google.api.services.youtube.model.LiveChatMessage;
|
||||
import com.google.api.services.youtube.model.LiveChatMessageListResponse;
|
||||
import com.google.api.services.youtube.model.LiveChatMessageSnippet;
|
||||
import com.google.api.services.youtube.model.LiveChatTextMessageDetails;
|
||||
import com.google.api.services.youtube.model.LiveChatTextMessageDetails.MessageTextDetails;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.security.GeneralSecurityException;
|
||||
import java.util.List;
|
||||
|
||||
public class MCchatbotyt {
|
||||
|
||||
private static final String APPLICATION_NAME = "MC chatbot for YT";
|
||||
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
|
||||
private static YouTube youtube;
|
||||
|
||||
public static void main(String[] args) throws GeneralSecurityException, IOException {
|
||||
// Set up credentials
|
||||
Credential credential = authorize();
|
||||
|
||||
// Set up YouTube API client
|
||||
youtube = new YouTube.Builder(
|
||||
GoogleNetHttpTransport.newTrustedTransport(),
|
||||
JSON_FACTORY,
|
||||
new HttpRequestInitializer() {
|
||||
@Override
|
||||
public void initialize(HttpRequest request) throws IOException {
|
||||
request.setInterceptor(credential);
|
||||
}
|
||||
})
|
||||
.setApplicationName(APPLICATION_NAME)
|
||||
.build();
|
||||
|
||||
// Get live chat ID for your live stream
|
||||
String liveChatId = getLiveChatId("5lAKSeFQS2M");
|
||||
|
||||
// Poll for new chat messages every few seconds
|
||||
while (true) {
|
||||
List<LiveChatMessage> messages = getLiveChatMessages(liveChatId);
|
||||
for (LiveChatMessage message : messages) {
|
||||
String author = message.getSnippet().getAuthorChannelId();
|
||||
String text = message.getSnippet().getDisplayMessage();
|
||||
System.out.println("New message from " + author + ": " + text);
|
||||
// Add your logic to handle incoming messages here
|
||||
}
|
||||
|
||||
// Connect to the socket server in MCbot.java and send a command
|
||||
try (Socket socket = new Socket("localhost", 8888);
|
||||
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
|
||||
|
||||
// Send command to MCbot.java
|
||||
out.println("!players");
|
||||
|
||||
// Receive response from MCbot.java
|
||||
String response = in.readLine();
|
||||
System.out.println("Response from MCbot.java: " + response);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
import com.google.api.services.youtube.model.VideoListResponse;
|
||||
import com.google.api.services.youtube.model.Video;
|
||||
|
||||
public class YouTubeBot {
|
||||
private Server server;
|
||||
private YouTube youtube;
|
||||
|
||||
public YouTubeBot(String apiKey) {
|
||||
try {
|
||||
Thread.sleep(5000); // Poll every 5 seconds
|
||||
} catch (InterruptedException e) {
|
||||
this.server = Bukkit.getServer();
|
||||
this.youtube = new YouTube.Builder(
|
||||
GoogleNetHttpTransport.newTrustedTransport(),
|
||||
JacksonFactory.getDefaultInstance(),
|
||||
null)
|
||||
.setApplicationName("Crafty MC")
|
||||
.setYouTubeApiKey()
|
||||
.build();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public int getOnlinePlayersCount() {
|
||||
return server.getOnlinePlayers().size();
|
||||
}
|
||||
|
||||
private static Credential authorize() throws IOException, GeneralSecurityException {
|
||||
// Load client secrets JSON file (you need to create this file with your OAuth client ID and secret)
|
||||
GoogleCredential credential = GoogleCredential.fromStream(
|
||||
YouTubeLiveChatBot.class.getResourceAsStream("/client_secrets.json"))
|
||||
.createScoped(List.of("https://www.googleapis.com/auth/youtube"));
|
||||
|
||||
return credential;
|
||||
}
|
||||
|
||||
private static String getLiveChatId(String liveStreamId) throws IOException {
|
||||
YouTube.LiveChatMessages.List liveChatRequest = youtube.liveChatMessages()
|
||||
.list("id,snippet")
|
||||
.setLiveChatId(liveStreamId);
|
||||
LiveChatMessageListResponse response = liveChatRequest.execute();
|
||||
List<LiveChatMessage> messages = response.getItems();
|
||||
if (messages != null && !messages.isEmpty()) {
|
||||
return messages.get(0).getSnippet().getLiveChatId();
|
||||
public void handleCommand(String command) {
|
||||
if (command.equalsIgnoreCase("!stats")) {
|
||||
String stats = getServerStatistics();
|
||||
// Send stats to YouTube chat or log for testing
|
||||
System.out.println(stats); // For testing, replace with actual sending to YouTube chat
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static List<LiveChatMessage> getLiveChatMessages(String liveChatId) throws IOException {
|
||||
YouTube.LiveChatMessages.List liveChatRequest = youtube.liveChatMessages()
|
||||
.list("id,snippet")
|
||||
.setLiveChatId(liveChatId);
|
||||
LiveChatMessageListResponse response = liveChatRequest.execute();
|
||||
return response.getItems();
|
||||
private String getServerStatistics() {
|
||||
// Use Spigot API or other methods to get server stats
|
||||
int onlinePlayers = server.getOnlinePlayers().size();
|
||||
// Construct and return server stats message
|
||||
return "Online Players: " + onlinePlayers;
|
||||
}
|
||||
|
||||
// Other methods and bot logic
|
||||
}
|
@@ -0,0 +1 @@
|
||||
C:\Users\hbmann\Documents\Projects\_MCbotYT\MCyoutube_bot\src\main\java\MCchatbotyt.java
|
Reference in New Issue
Block a user