Skip to content

Commit

Permalink
Version 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
CorwinDev committed Sep 12, 2022
1 parent 4740e57 commit b28027b
Show file tree
Hide file tree
Showing 10 changed files with 159 additions and 16 deletions.
33 changes: 30 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>StreamerVSChat</groupId>
<artifactId>StreamerVSChat</artifactId>
<version>1.4</version>
<version>2.0</version>
<packaging>jar</packaging>

<name>Streamer vs Chat</name>
Expand All @@ -31,9 +31,14 @@
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<configuration>
<relocations>
<relocation>
<pattern>org.bstats</pattern>
<shadedPattern>nl.corwindev.streamervschat.main</shadedPattern>
</relocation>
</relocations>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>nl.corwindev.streamervschat.main
</mainClass>
</transformer>
Expand Down Expand Up @@ -93,6 +98,10 @@
<groupId>club.minnced</groupId>
<artifactId>opus-java</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
Expand All @@ -104,12 +113,30 @@
<groupId>club.minnced</groupId>
<artifactId>opus-java</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>commons-lang</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>io.github.openfeign</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-youtube</artifactId>
<version>v3-rev182-1.22.0</version>
</dependency>
<dependency>
<groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId>
<version>3.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command
commandSender.sendMessage(ChatColor.RED + "Correct usage: /testcommand <msg>");
return false;
}
commands.UserList.add(commandSender.getName());
commands.commandList.add(strings[0]);
commandSender.sendMessage(ChatColor.GREEN + "Added command: " + strings[0] + " to queue;");
return true;
Expand Down
51 changes: 45 additions & 6 deletions src/main/java/nl/corwindev/streamervschat/commands.java
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
package nl.corwindev.streamervschat;

import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.FallingBlock;
import org.bukkit.entity.Player;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.entity.*;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitTask;
import org.bukkit.util.Vector;

import java.util.*;
import java.util.concurrent.ThreadLocalRandom;

import static nl.corwindev.streamervschat.main.plugin;

public class commands {
public static List<String> commandList = new ArrayList<String>();

public static List<String> UserList = new ArrayList<String>();
public static void start() {
BukkitTask task = Bukkit.getScheduler().runTaskTimer(plugin, new Runnable() {
@Override
Expand All @@ -36,6 +39,10 @@ public void run() {
}
// Remove the command from the list
runCmd(command);
// Alert the user
for(Player player: getPlayers()) {
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent("§a§l" + UserList.get(randomCommand) + "§r§a has executed the command: §l" + command));
}
}
}, plugin.getConfig().getInt("commands.delay") * 20, plugin.getConfig().getInt("commands.delay") * 20);
}
Expand Down Expand Up @@ -87,7 +94,13 @@ public static void runCmd(String command) {
commands.jumpboost();
}else if(Objects.equals(command, "levitate") || Objects.equals(command, "fly")) {
commands.fly();
}else {
}else if(Objects.equals(command, "randomeffect") || Objects.equals(command, "randompoison")){
commands.randomeffect();
}else if(Objects.equals(command, "fireball")) {
commands.fireball();
}else if(Objects.equals(command, "drop")){
commands.drop();
} else {
commands.custom(command);
}
}
Expand Down Expand Up @@ -270,4 +283,30 @@ public static void custom(String command){
}
}
}

public static void randomeffect(){
int rnd = ThreadLocalRandom.current().nextInt(PotionEffectType.values().length);

for (Player player : getPlayers()) {
player.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.values()[rnd], 200, 1));
}
}

public static void fireball(){
for (Player player : getPlayers()) {
// Send fireball to the player
Location location = new Location(player.getWorld(), player.getLocation().getX(), player.getLocation().getY() + 20, player.getLocation().getZ() );
Vector vector = player.getLocation().toVector().subtract(location.toVector()).normalize();
Fireball fire = (Fireball) location.getWorld().spawn(location, Fireball.class);
fire.setDirection(vector);
}
}

public static void drop(){
for (Player player : getPlayers()) {
ItemStack hand = player.getInventory().getItemInMainHand();
player.getInventory().removeItem(hand);
player.getWorld().dropItemNaturally(player.getLocation(), hand);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public void onMessageReceived(MessageReceivedEvent event) {
Message message = event.getMessage();
String content = message.getContentRaw();
if (content.contains(main.plugin.getConfig().getString("commands.prefix"))) {
commands.UserList.add(event.getAuthor().getName());
commands.commandList.add(content.replace(main.plugin.getConfig().getString("commands.prefix"), ""));
}
}
Expand Down
40 changes: 37 additions & 3 deletions src/main/java/nl/corwindev/streamervschat/main.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
package nl.corwindev.streamervschat;

import net.dv8tion.jda.api.JDA;
import nl.corwindev.streamervschat.command.DiscordReload;
import nl.corwindev.streamervschat.command.TwitchReload;
import nl.corwindev.streamervschat.command.YouTubeReload;
import nl.corwindev.streamervschat.objects.UpdateChecker;
import nl.corwindev.streamervschat.youtube.YouTubeConnectionHelper;
import org.bstats.charts.DrilldownPie;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import nl.corwindev.streamervschat.discord.DiscordConnectionHelper;
import nl.corwindev.streamervschat.twitch.TwitchConnectionHelper;
import javax.security.auth.login.LoginException;
import nl.corwindev.streamervschat.objects.JdaFilter;
import nl.corwindev.streamervschat.command.TestCommand;
import org.bukkit.util.Vector;
import org.bstats.bukkit.Metrics;

import java.util.HashMap;
import java.util.Map;

public final class main extends JavaPlugin {
// Exports this class to the plugin.
Expand All @@ -25,6 +28,14 @@ public void onEnable() {
this.reloadConfig();
this.saveDefaultConfig();
plugin = this;
int pluginId = 16419;
new UpdateChecker(this, pluginId).getVersion(version -> {
if (this.getDescription().getVersion().equals(version)) {
getLogger().info("There is not a new update available.");
} else {
getLogger().warning("There is a new update available. Download it here: https://www.spigotmc.org/resources/streamer-vs-chat-1-13-1-19.105119/");
}
});
if (!plugin.getConfig().getBoolean("twitch.enabled") && !plugin.getConfig().getBoolean("discord.enabled") && !plugin.getConfig().getBoolean("youtube.enabled")) {
getLogger().info("No services enabled, disabling plugin.");
Bukkit.getPluginManager().disablePlugin(this);
Expand Down Expand Up @@ -76,6 +87,27 @@ public void onEnable() {
this.getCommand("youtube-reload").setExecutor(new YouTubeReload());
this.getCommand("twitch-reload").setExecutor(new TwitchReload());
this.getCommand("discord-reload").setExecutor(new DiscordReload());
Metrics metrics = new Metrics(this, pluginId);
metrics.addCustomChart(new DrilldownPie("live_platform", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
Boolean YouTubeEnabled = this.getConfig().getBoolean("youtube.enabled");
Boolean TwitchEnabled = this.getConfig().getBoolean("twitch.enabled");
Boolean DiscordEnabled = this.getConfig().getBoolean("discord.enabled");
Map<String, Integer> entry = new HashMap<>();
entry.put("YouTube", YouTubeEnabled ? 1 : 0);
entry.put("Twitch", TwitchEnabled ? 1 : 0);
entry.put("Discord", DiscordEnabled ? 1 : 0);
if(YouTubeEnabled) {
map.put("YouTube", entry);
}
if(TwitchEnabled) {
map.put("Twitch", entry);
}
if(DiscordEnabled) {
map.put("Discord", entry);
}
return map;
}));
}

@Override
Expand All @@ -88,6 +120,8 @@ public void onDisable() {
if (TwitchConnectionHelper.isConnected()) {
TwitchConnectionHelper.getBot().disconnect();
}
YouTubeConnectionHelper.stop();

getLogger().info("Corwin shutting down!");

}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package nl.corwindev.streamervschat.objects;

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Scanner;
import java.util.function.Consumer;

public class UpdateChecker {

private final JavaPlugin plugin;
private final int resourceId;

public UpdateChecker(JavaPlugin plugin, int resourceId) {
this.plugin = plugin;
this.resourceId = resourceId;
}

public void getVersion(final Consumer<String> consumer) {
Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> {
try (InputStream inputStream = new URL("https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceId).openStream(); Scanner scanner = new Scanner(inputStream)) {
if (scanner.hasNext()) {
consumer.accept(scanner.next());
}
} catch (IOException exception) {
plugin.getLogger().info("Unable to check for updates: " + exception.getMessage());
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,9 @@ public static boolean login() {


botThread = new Thread(() -> {

TwitchEvents bot = new TwitchEvents(twitchClient.getEventManager().getEventHandler(SimpleEventHandler.class));
twitchClient.joinChannel(plugin.getConfig().getString("twitch.channel"));
twitchClient.connect();

});

botThread.start();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public TwitchEvents(SimpleEventHandler eventHandler) {
private void onChannelMessage(ChannelMessageEvent event) {
System.out.println(event.getUser().getName() + ": " + event.getMessage());
if (event.getMessage().contains(main.plugin.getConfig().getString("commands.prefix"))) {
commands.UserList.add(event.getUser().getName());
commands.commandList.add(event.getMessage().replace(main.plugin.getConfig().getString("commands.prefix"), ""));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public static void main(String args) {
main.plugin.getLogger().warning("[YouTube] Error: " + t.getMessage());
}
}

public static TimerTask tt = null;
/**
* Lists live chat messages, polling at the server supplied interval. Owners and moderators of a
* live chat will poll at a faster rate.
Expand All @@ -62,6 +62,7 @@ private static void listChatMessages(
new TimerTask() {
@Override
public void run() {
tt = this;
try {
// Get chat messages from YouTube
LiveChatMessageListResponse response = youtube
Expand Down Expand Up @@ -123,6 +124,7 @@ private static String buildOutput(
if (author.getIsChatSponsor()) {
roles.add("SPONSOR");
}
commands.UserList.add(author.getDisplayName());
if (roles.size() > 0) {
output.append(" (");
String delim = "";
Expand All @@ -147,7 +149,14 @@ private static String buildOutput(
public static void reload(){
main.plugin.getLogger().info("[YouTube] Reloading...");
main.plugin.reloadConfig();
tt.cancel();
main("run");
main.plugin.getLogger().info("[YouTube] Reloaded!");
}

public static void stop(){
main.plugin.getLogger().info("[YouTube] Stopping...");
tt.cancel();
main.plugin.getLogger().info("[YouTube] Stopped!");
}
}
2 changes: 1 addition & 1 deletion src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: StreamerVsChat
version: '1.4'
version: '2.0'
main: nl.corwindev.streamervschat.main
api-version: 1.13
commands:
Expand Down

0 comments on commit b28027b

Please sign in to comment.