src/com/minecraft/bot folder created

This commit is contained in:
nzBryce101
2024-04-05 20:34:06 +13:00
parent 5efad52007
commit a65760d4ac
7 changed files with 46 additions and 23 deletions

Binary file not shown.

View File

@@ -1,100 +0,0 @@
import java.io.*;
import java.net.*;
import java.util.List;
import java.util.stream.Collectors;
import org.bukkit.Bukkit;
import org.bukkit.Statistic;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class MCbot extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("MCbot enabled");
// Start your socket server here
startSocketServer();
}
@Override
public void onDisable() {
getLogger().info("MCbot disabled");
// Stop your socket server here if needed
}
public void startSocketServer() {
try {
ServerSocket serverSocket = new ServerSocket(8888); // Port for socket communication
while (true) {
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String command = in.readLine();
// Process the command
String response = processCommand(command);
// Send the response back to the client
out.println(response);
clientSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
private String processCommand(String command) {
// Implement logic to process commands here
// Example: If command is "!players", return player list from Minecraft server
if (command.equals("!players")) {
// Use Spigot API to get player list
List<Player> onlinePlayers = Bukkit.getServer().getOnlinePlayers().stream().collect(Collectors.toList()));
if (onlinePlayers.isEmpty()) {
return "No players are currently online.";
} else {
StringBuilder playerList = new StringBuilder("Players online: ");
for (Player player : onlinePlayers) {
playerList.append(player.getName()).append(", ");
}
// Remove the trailing comma and space
playerList.setLength(playerList.length() - 2);
return playerList.toString();
}
}
if (command.startsWith("!exp ")) {
// Extract player name from command
String playerName = command.substring(5); // Assuming "!exp " is 5 characters long
// Get player object by name
Player player = Bukkit.getPlayer(playerName);
if (player != null) {
// Get player's experience level
int expLevel = player.getLevel();
return playerName + "'s experience level: " + expLevel;
} else {
return "Player not found: " + playerName;
}
}
if (command.startsWith("!deaths ")) {
//Extract player name from command
String playerName = command.substring(8); // Assuming "!deaths " is at least 8 chars long
// Get Player object by name
Player player = Bukkit.getPlayer(playerName);
if(player != null) {
// Get Player's Death Count
int deaths = player.getStatistic(Statistic.DEATHS);
return playerName + "has died" + deaths + "times";
}else {
return "Player not found: " + playerName;
}
}
// Add more command processing logic as needed
return "Unknown command: " + command;
}
}

View File

@@ -1,113 +0,0 @@
import com.google.api.client.googleapis.auth.oauth2.Credential;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
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.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
}
try {
Thread.sleep(5000); // Poll every 5 seconds
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
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();
}
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();
}
// Connect to the socket server in MCbot.java
Socket socket = new Socket("localhost", 12345); // Connect to localhost on port 12345
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);
socket.close();
} catch (IOException | GeneralSecurityException e) {
e.printStackTrace();
}
}
}