From e37f74136ee59b7a78cef480583b07889d27598f Mon Sep 17 00:00:00 2001 From: ayunami2000 Date: Thu, 21 Apr 2022 15:15:35 -0400 Subject: [PATCH] ok actually done this time + jar --- .../me/ayunami2000/ayunEagVidMap/Main.java | 26 ++++++++++++------ src/main/resources/messages.yml | 6 ++-- target/ayunEagVidMap-1.0-SNAPSHOT.jar | Bin 11468 -> 15147 bytes 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/me/ayunami2000/ayunEagVidMap/Main.java b/src/main/java/me/ayunami2000/ayunEagVidMap/Main.java index d076b28..7337544 100644 --- a/src/main/java/me/ayunami2000/ayunEagVidMap/Main.java +++ b/src/main/java/me/ayunami2000/ayunEagVidMap/Main.java @@ -13,8 +13,8 @@ import org.bukkit.util.Vector; public class Main extends JavaPlugin implements CommandExecutor, Listener { //todo: add queue command + store audio loc world & dont send to players in other worlds??? + //todo: or like detect where map is placed in world via entities and then per player play audio from the nearest one to them?? //todo: also when holding video map play audio at player location for that player - //todo: reload config command public static Main plugin; @@ -36,13 +36,7 @@ public class Main extends JavaPlugin implements CommandExecutor, Listener { public void onEnable(){ MessageHandler.initMessages(); this.saveDefaultConfig(); - audioLoc.setX(this.getConfig().getDouble("audio.x")); - audioLoc.setY(this.getConfig().getDouble("audio.y")); - audioLoc.setZ(this.getConfig().getDouble("audio.z")); - mapSizeCap = this.getConfig().getInt("size.cap"); - mapOffset = this.getConfig().getInt("offset"); - setSize(this.getConfig().getInt("size.width"), this.getConfig().getInt("size.height")); - url = this.getConfig().getString("url"); + this.rlConfig(); syncTask = this.getServer().getScheduler().scheduleSyncRepeatingTask(this, this::syncToAllPlayers, 10000, 10000); // sync every 10 seconds this.getCommand("ayunvid").setExecutor(this); this.getServer().getPluginManager().registerEvents(this, this); @@ -54,6 +48,16 @@ public class Main extends JavaPlugin implements CommandExecutor, Listener { sendToAllPlayers(videoMapCodec.disableVideoBukkit()); } + private void rlConfig() { + audioLoc.setX(this.getConfig().getDouble("audio.x")); + audioLoc.setY(this.getConfig().getDouble("audio.y")); + audioLoc.setZ(this.getConfig().getDouble("audio.z")); + mapSizeCap = this.getConfig().getInt("size.cap"); + mapOffset = this.getConfig().getInt("offset"); + setSize(this.getConfig().getInt("size.width"), this.getConfig().getInt("size.height")); + url = this.getConfig().getString("url"); + } + private void syncToPlayer(Player player) { videoMapCodec.syncPlaybackWithPlayersBukkit().send(player); } @@ -95,6 +99,12 @@ public class Main extends JavaPlugin implements CommandExecutor, Listener { return true; } switch (args[0].toLowerCase()) { + case "rl": + case "reload": + this.reloadConfig(); + this.rlConfig(); + MessageHandler.sendPrefixedMessage(sender, "reloaded"); + break; case "h": case "help": MessageHandler.sendPrefixedMessage(sender, "usage"); diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml index 238fa70..a689af2 100644 --- a/src/main/resources/messages.yml +++ b/src/main/resources/messages.yml @@ -5,7 +5,8 @@ usage: - "&7&o/ayunvid [url] &3- Specify the video URL to use, or get the current one. &l(Must be CORS-compatible!)" - "&7&o/ayunvid [x y z] &3- Specify the location that the audio will come from. If no arguments are supplied, this will default to the sender's position." - "&7&o/ayunvid &3- Toggle playback of the video. This also loads the new video after the video URL is changed." - - "&7&o/ayunvid [ ]&3- Sets or gets the size of video, in maps. E.g., a width of 2 and a height of 3 would result in a video using 6 maps." + - "&7&o/ayunvid [ ] &3- Sets or gets the size of video, in maps. E.g., a width of 2 and a height of 3 would result in a video using 6 maps." + - "&7&o/ayunvid &3- Reloads the configuration file." currentUrl: "&3Current URL: {0}" setUrl: "&3Successfully set URL." locFromConsole: "&cError: You must specify the coordinates when running this command from the console!" @@ -19,4 +20,5 @@ resuming: "&3Resuming video..." pausing: "&3Pausing video..." currentSize: "&3Current size: {0} maps wide by {1} maps tall ({2} maps total)" setSize: "&3Set size to {0} maps wide by {1} maps tall ({2} maps total)" -invalidUsage: "&cError: That is not a valid subcommand! Try &n/ayunvid&c help for usage." \ No newline at end of file +invalidUsage: "&cError: That is not a valid subcommand! Try &n/ayunvid&c help for usage." +reloaded: "&3Successfully reloaded configuration!" \ No newline at end of file diff --git a/target/ayunEagVidMap-1.0-SNAPSHOT.jar b/target/ayunEagVidMap-1.0-SNAPSHOT.jar index b187d2a9288984e99a30261bb5056174ef1ef3ba..89c2d201338c6238b714bd6e0c6c908a563a24fc 100644 GIT binary patch delta 8113 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 KCQ;zE-~R%6=R|V= delta 4452 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