Giter Site home page Giter Site logo

ericyoondotcom / minecraftmanhunt Goto Github PK

View Code? Open in Web Editor NEW
25.0 2.0 7.0 258 KB

Minecraft Bukkit plugin to run Manhunt minigames, with Discord music integration

License: GNU General Public License v3.0

Java 100.00%
minecraft minecraft-plugin bukkit spigot bukkit-plugin spigot-plugin discord discord-bot jda-bot jda

minecraftmanhunt's Introduction

MinecraftManhunt

View on BukkitView on SpigotMCView on PaperMC

Having issues? Check the FAQ Issues page, or report a problem on the Issues tab!


Made by Eric (yoonicode.com)
Github: ericyoondotcom
Minecraft: TildeTildeTilde


Inspired by Dream on YouTube

How It Works

Three teams: Hunters, Runners, and Spectators Hunters try to kill the runners before they beat the enderdragon. Runners must beat the enderdragon before they get killed once!

Features

  • Compass tracking: Right-click with your compass to choose who to track, then the compass will point to that runner!
  • Portal tracking: If a runner is in the nether, the compass will track their last-used portal!
  • Teams assignment: Automatically assigns in-game /team to distinguish between players with colors!
  • Discord integration: Optionally integrate with Discord for extra features!
    • Auto role assignment: Automatically assign Discord roles according to teams
    • Music player: Automatically (or manually) play music in your Discord voice channel that mirrors the action happening!

Instructions For Use

  • Move the .jar from the Releases tab to your plugins folder.
  • Make sure your config file is up to date and has all the required options.
  • Assign roles with /speedrunner, /hunter, and /spectator.
  • If you want automatic music, type /music auto now.
  • Type /start!
  • After the headstart period is over, hunters should be able to start tracking runners by selecting someone to track by right-clicking with their compass.

Note: teams are not persistent between server sessions— if you shut down the server you'll have to re-assign teams and type /start again. Have players put their items in chests before typing /start if you're doing this, since the command clears inventories.

Discord Setup Instructions

  • Create a Discord app from the Developer Portal.
  • Add a Bot under the bots tab.
  • Scroll down and enable the toggles under "server members intent" and "message content intent".
  • Take note of your Client ID (in the General Information tab) and your Token (under the Bot tab).
  • Go to the following link, replacing 123YourClientID456 with your client ID: https://discord.com/oauth2/authorize?scope=bot&client_id=123YourClientID456&permissions=8
  • Select the Discord server to add your bot to.
  • Add your Client ID and Token to the respective fields in the config file.
  • Go to your Discord server, and add the following values to the config file, in accordance with the table above (you can Right Click > Copy ID if you turn on Developer Mode in Discord settings!)
    • the ID of your server
    • the ID of the voice channel you want your music to play in
    • the ID of the hunter, runner, and spectator Discord roles you want to be automatically assigned

Note: For auto-role-assignment to work, each Discord user's nickname for your Server must be set to their Minecraft username.

Commands

  • /speedrunner <username>: Assign speedrunner role
  • /hunter <username>: Assign hunter role
  • /spectator <username>: Assign spectator role
  • /start: Start the match
  • /end: End the match
  • /compass: Give yourself a compass
  • /music: Controls the Discord music
    • /music list: Gets a list of available tracks to play.
    • /music <trackname>: Plays a specific track by nickname and turns off auto-music.
    • /music stop: Stops all music playing and turns off auto-music.
    • /music auto: Turns on auto-music, which plays different tracks based on game events and hunter/runner distance.
    • /music forceupdate: Forces the music to update to match the current hunter/runner distance. Use /music stop first if a special event track is playing.
  • /setheadstart <duration>: Sets the headstart duration, in seconds.

Configuration Options

Edit the plugins/MinecraftManhunt/config.yml file with the following options:

Game Options

Key Description Type Required?
headStartDuration How long the hunters should get blindness and slowness when the match starts, in secs. int Required
compassEnabledInNether Set to true to allow the compass to work in the nether. boolean Optional, defaults to true
sendUsageData Set to true to send anonymized, aggregated usage data to help improve the plugin. boolean Optional, defaults to false
uuid Randomized id that is automatically assigned if sendUsageData is enabled. Please do not touch this field. string Do not set manually

Extra Options

Key Description Type Required?
setRunnersToSpecOnDeath Set to true to set runners' gamemodes to spectator when they die. boolean Optional, defaults to true
huntersColor The color to give to the hunters team. string Optional
runnersColor The color to give to the runners team. string Optional
spectatorsColor The color to give to the spectators team. string Optional
clearRunnerInvOnStart Set to true to clear the runners' inventories and experience when the game starts. boolean Optional, defaults to false
clearHunterInvOnStart Set to true to clear the hunters' inventories and experience when the game starts. boolean Optional, defaults to false
clearItemDropsOnStart Set to true to clear all Item entities when the game starts. boolean Optional, defaults to false
setTimeToZero Set to true to reset the game time when the game starts. boolean Optional, defaults to true
startGameByHit Set to true to start the game when a runner hits a hunter, instead of when the /start command is used. boolean Optional, defaults to false
preGameWorldBorder Set to true to enforce a world border before the game starts (useful to keep players from running too far). boolean Optional, defaults to false
preGameBorderSize States how big the pre-game world border would be, if enabled. int Optional, defaults to 100; ignored when preGameWorldBorder is false

Discord Integration

Key Description Type Required?
enableDiscord Set to true to turn on Discord integration. Read below for more information. boolean Required
discordToken Enter the token of your Discord bot here. string Required if enableDiscord is true
ip The Discord status message portion. Will display as Playing {value} so it's recommended that you make this your server's IP. string Optional
parseDiscordCommands Set to true if you want music commands to be run by sending a message in Discord text channels. This allows anyone in your Discord server to run music commands, however. Optional, defaults to false
discordServerId The ID of your Discord server that the bot is on. string Required if enableDiscord is true
musicChannelId The ID of the voice channel that the bot should play music on. string Required if enableDiscord is true
hunterRoleId The ID of the role to assign to Hunters. string Optional
runnnerRoleId The ID of the role to assign to Runners. string Optional
spectatorRoleId The ID of the role to assign to Spectators. string Optional

Note: if any of the role IDs are missing or invalid, no roles will be assigned.

Permissions

Permission Description Recommended level
minecraftmanhunt.hunter Allow /hunter command everyone
minecraftmanhunt.speedrunner Allow /speedrunner command everyone
minecraftmanhunt.spectator Allow /spectator command everyone
minecraftmanhunt.clearteams Allow /clearteams command operators
minecraftmanhunt.start Allow /start command operators
minecraftmanhunt.end Allow /end command operators
minecraftmanhunt.compass Allow /compass command everyone
minecraftmanhunt.music Allow /music command. Note that music commands can also be typed in Discord if processDiscordCommands in config is set to true. everyone
minecraftmanhunt.config Allow config-changing commands, such as /setheadstart. operators

Music Queues

Part of the fun of this plugin is learning what each music queue means to get a competitive advantage. Here's a list of what causes each track to play.

Distance

The intensity of the music depends on the distance between the runners and the hunters. Tracks are selected at random from the following categories:

  • < 50 blocks away: Chasing
  • < 150 blocks away: In Sight
  • < 300 blocks away: Stealth
  • < 450 blocks away: Approaching
  • >= 450 blocks away: Far away

Additionally, there is a set of tracks that play if the runners, but not the hunters, are in the Nether.

Special Events

Special tracks play when events related to the game occur. Some events are:

  • The runners mine their first iron ore
  • The runners mine a diamond ore
  • The hunters craft their first piece of iron armor
  • The hunters and runners damage each other
    • "Chase" music plays if the fighters have a combined total of less than two pieces of armor
    • "Fight" music plays if they have more than two pieces of armor
  • A hunter dies
  • A runner dies
  • Both players are in boats
  • A runner trades with a Piglin for the first time
  • A runner teleports to the end

Troubleshooting

  • online-mode in server.properties must be set to true as of version 1.2.4.
  • If you are using Discord integration, make sure your server's system clock is set correctly.
  • Check the FAQ Issues page, or report a problem on the Issues tab!

Advanced: Developing

  • This project uses Maven. To build, run the package script.
  • Pull requests and Issues are welcome!

Made With

minecraftmanhunt's People

Contributors

ericyoondotcom avatar permanently avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

minecraftmanhunt's Issues

Commands not being commands

When i try to do /start or add a speedrunner it does not recognize them as commands. I'm not sure if this is because I am on the server by myself while I test the plugin but I'm still going to post this just in case

Only show compass menu if clicked by current player

I have the game running in it's own separate world. In order to take the plugin out I have to shut down the server. So that means that in order to run your plugin my server has to be dedicated to manhunt because the compass prompts you for the player name you want to track.. even when there is no hunt active.
So that was the basis of my question. Is there a way to blacklist worlds where the plugin will not function OR is there a possibility of the compass returning to normal when you are not in a Hunt.. making it so that ONLY the players that are currently involved in a hunt, so that ONLY their compasses behave as you have programmed them to be used during a hunt. NOT during normal play.

TacoGerbil on Spigot forums


The best option seems to be to only show the compass menu to those who are playing (INCLUDING spectators). Make sure the /clearteams command actually clears the team arrays too.

Compass doesn't work on 1.16.1 only on 1.16.4

Describe the bug

On 1.16.1 the compass points to world spawn for every hunter except the host. On 1.16.4 everything works perfectly.

Environment Info

Plugin version: 1.3.3.2
Bukkit/Spigot server version: 1.16.1

Configuration file

headStartDuration: 30
compassEnabledInNether: true
sendUsageData: true
enableDiscord: false
discordToken: XXXXX
ip: a minecraft server
processDiscordCommands: true
discordServerId: XXXXX
musicChannelId: XXXXX
hunterRoleId: XXXXX
runnerRoleId: XXXXX
spectatorRoleId: XXXXX
uuid: b4ce66fc-3d1d-4cd9-82c5-3c25f7f379fe

Server Logs

Nothing particular but i'll have to check again next time i play

Anything else?

Doesn't matter if online-mode is true or false. Compass doesn't work in both cases.

Dead link?

Trying to link the discord app but the link is taking me to an error window. Possibly dead?

Extra hunter effects

Description

Simply, when there's a headstart, hunters should also get mining fatigue. Otherwise, they can just mine a tree as speedrunners start.

A Hitman mode

Description

Manhunt is a game that requires time in order to be played from start to finish. But I don't always have enough time for a full manhunt with friends, so we need something less time-consuming. Adding a hitman mode would solve this problem for me and for others who potentially have this problem. The hitman mode is a manhunt where the world is around 750x750 blocks big, the runners are glowing and have to survive for a limited amount of time to win, just like Dream's Minecraft Survivalist VS 3 Hitmen video. I would love to see this feature in the plugin.

Discord Bot not playing music, and not working

Hey so I just want to start off by saying: This plugin is awesome. In my opinion, it is actually the best Manhunt Plugin for vanilla experience, and at the moment I'm still using it.
BUT-
After I set the bot up, with the token, discord channel/server ID's etc, I would run the /music auto command, and the Bot would leave and rejoin the Voice Channel, repeatedly over and over, and there is no way to stop it, doing /music stop doesn't work and I even tried variants of it (not that that would work). The only way I stopped it was stopping the server or kicking the bot from my discord. Also, In my Minecraft Server console, it sometimes says something along the lines of "failed to find song" or something on the startup. And- a few times, the compass would randomly not point to runners, but instead in the opposite direction. I have no idea what the cause could have been, but at some points the console was spammed with errors regarding the plugin, and I had to force stop my server because everyone timed out.
So for now, I have the plugin, but just have discord turned off until these issues are fixed, or I fix something I am doing wrong!

Anyway, thank you for making this amazing plugin, and I cannot wait until I can use it's full potential :D

Compass not working

Describe the bug

when u start the compass tracks spawn and says tracking player null. Fix the issue

Spectator upon death doesn't work properly

Describe the bug

I don't think this description will be enough to cover it, so in this I've linked two videos.

The first one is when someone is simply assigned the spectator role. The game starts, and everything works perfectly. You can teleport into people, use the hotbar, clip into blocks, as normal.

The second one is when someone dies as a speedrunner and is converted to a spectator. The hotbar can't be used, block collisions don't allow you to clip under the ground, and the only way around this is to make a /fix command in commands.yml:

  fix:
  - gamemode adventure $$1
  - gamemode spectator $$1

Which, somehow, sets everything back to normal.

Potential Causes

Kill a speedrunner, and have setRunnersToSpecOnDeath set to true.

Environment Info

Plugin version: 1.3.3.6
Bukkit/Spigot server version: 1.16.4-R0.1 (specifically, git-Tuinity-"f06591a", a Tuinity build)

Configuration file

The only part of the config.yml file that could potentially be relevant:

# Set to true to put runners in spectator mode when they die.
setRunnersToSpecOnDeath: true

Server Logs

Nothing at all. No errors, or even warnings.

Anything else?

You'd think this onPlayerDeath line would perform the same as the spectator team set gamemode line, but I don't know. I'm honestly not an expert in the Spigot API. ¯_(ツ)_/¯

Also not related, but sorry about messing up #44 (I'm really bad with Git), I re-requested in #45 :)

Discord death role

Description

Describe your proposed feature!

Hi there,

It would be really cool to see a separate Discord role for speedrunners that have died, so that they can go into a separate voice channel and talk with each other!

Help with the source code

Hey, I'm new to java code, I've imported all the maven and the plugin works, but the discord API don't works. is there a precise method to import the github project to eclipse? I would like to change the plugin messages simply

That is the error that appears on start in console:
https://pastebin.com/FkRy0Bqh

DiscordSRV integration

Description

Describe your proposed feature!

Hi there,

It would be really great if the plugin could support DiscordSRV (or similar) integration, so people do not have to change their Discord nicknames to get role sync to work. I would be happy to help you test it :)

Best regards,
Lars

Track not playing: "Something broke when playing the track" SSL Error

Found the following bug when setting up the plugin on a Google Compute Engine virtual machine. The solution is below.

Describe the bug

The following errors would appear in the console:

[MinecraftManhunt] Started track with a result of true
[MinecraftManhunt] Audio track exception: Something broke when playing the track.
[MinecraftManhunt] javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed
...
Caused by: java.security.cert.CertificateNotYetValidException: NotBefore: [some date/time]

Solution

LavaPlayer could not establish an SSL connection to Youtube. Make sure your system's date/time clock is correct. If it is too far in the past, music will not work.

Either use your system OS, or the shell command:

date --set="YOUR CORRECTED TIME STRING"

References

Make compass only track when holding item

Is is possible to add configurable setting to set the compass to only track when holding it, similar to the dream videos. Seems they have the item out and right click to track them

Just makes it abit harder for the hunters

Thanks

Update on Waterfall/BungeeCord Support

Not much of a feature request, but.
The plugin does not work with offline-mode, and that is fine.
If the "Bungee" boolean is enabled in Spigot.yml, the plugin can correctly pull the data it needs from Bungee.
I reported this thinking it was a problem with the plugin when it really was a problem with my config.
TLDR: Plugin works with Bungee, just don't be a brainlet.

Remove roles command

Adding roles and playing was super easy, but we ran into trouble trying to remove the roles. There isn't a command for it. Please help.

When clicking anything in your inventory, chat floods with messages.

Describe the bug

When you click anything in your inventory, the chat floods with You're not on a ManHunt team!

Potential Causes

Click any slot in your inventory when the game hasn't started yet, it will show the message in chat.

Environment Info

Plugin version: 1.3.1

Bukkit/Spigot server version: 1.16.4

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

# How long the hunters should get blindness and slowness when the match starts.
headStartDuration: 25
compassEnabledInNether: false
sendUsageData: false
enableDiscord: true
discordToken: x
ip: servas.ggs.gg
processDiscordCommands: false
discordServerId: 773923702651092992
musicChannelId: 773923702651092996
hunterRoleId: XXXXX
runnerRoleId: XXXXX
spectatorRoleId: XXXXX
uuid: 100c7e93-1313-4290-8941-aca8dea14701

Server Logs

Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

None.

Anything else?

Nope.

Discord integration: "Unable to find acceptable protocols"

Describe the bug

A clear and concise description of what the bug is.

While having enableDiscord: false the plugin's core features work perfectly fine.
setting it to true prevents the plugin from working completly and just outputs Internal Errors upon command executions.

Potential Causes

Enabling discord module

Environment Info

Plugin version: 1.2.3

Bukkit/Spigot server version: 1.16.3

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

headStartDuration: 1
compassEnabledInNether: true

enableDiscord: true  [or enableDiscord: false]
discordToken: "[REDACTED]"
ip: "skyjak.xyz"

discordServerId: "593165457582850057"
musicChannelId: "766707251120439346"
hunterRoleId: "764535846115737630"
runnerRoleId: "764535846115737630"
spectatorRoleId: "764535846115737630"

Server Logs

Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

org.bukkit.command.CommandException: Cannot execute command 'music' in plugin MinecraftManhunt v1.2.3 - plugin is disabled.
^ if discord module is enabled

If not doing /music outputs this.

[14:09:27 ERROR]: Could not pass event TabCompleteEvent to MinecraftManhunt v1.2.3
java.lang.NullPointerException: null
        at com.yoonicode.minecraftmanhunt.PluginCommands.getCompletions(PluginCommands.java:101) ~[?:?]
        at com.yoonicode.minecraftmanhunt.PluginListener.onAutocomplete(PluginListener.java:62) ~[?:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor5.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.3.jar:git-Paper-247]
        at org.bukkit.plugin.EventExecutor$$Lambda$3681/000000003C65EEC0.execute(Unknown Source) ~[?:?]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.3.jar:git-Paper-247]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.3.jar:git-Paper-247]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.3.jar:git-Paper-247]
        at org.bukkit.craftbukkit.v1_16_R2.CraftServer.tabComplete(CraftServer.java:1861) ~[patched_1.16.3.jar:git-Paper-247]
        at org.bukkit.craftbukkit.v1_16_R2.command.BukkitCommandWrapper.getSuggestions(BukkitCommandWrapper.java:58) ~[patched_1.16.3.jar:git-Paper-247]
        at com.mojang.brigadier.tree.ArgumentCommandNode.listSuggestions(ArgumentCommandNode.java:71) ~[patched_1.16.3.jar:git-Paper-247]
        at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:596) ~[patched_1.16.3.jar:git-Paper-247]
        at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:579) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.PlayerConnection.lambda$a$4(PlayerConnection.java:589) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.PlayerConnection$$Lambda$4437/00000000F818EF70.run(Unknown Source) ~[?:?]
        at net.minecraft.server.v1_16_R2.TickTask.run(SourceFile:18) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:1135) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:1128) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.sleepForTick(MinecraftServer.java:1089) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:1003) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer$$Lambda$3064/00000000CA327FD0.run(Unknown Source) ~[?:?]

--------


[14:09:27 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'music' in plugin MinecraftManhunt v1.2.3
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.3.jar:git-Paper-247]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.3.jar:git-Paper-247]
        at org.bukkit.craftbukkit.v1_16_R2.CraftServer.dispatchCommand(CraftServer.java:802) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.PlayerConnection.handleCommand(PlayerConnection.java:1918) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.PlayerConnection.a(PlayerConnection.java:1729) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.PlayerConnectionUtils$$Lambda$4072/00000000F813CDC0.run(Unknown Source) ~[?:?]
        at net.minecraft.server.v1_16_R2.TickTask.run(SourceFile:18) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:1135) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:1128) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.sleepForTick(MinecraftServer.java:1089) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:1003) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.3.jar:git-Paper-247]
        at net.minecraft.server.v1_16_R2.MinecraftServer$$Lambda$3064/00000000CA327FD0.run(Unknown Source) ~[?:?]
        at java.lang.Thread.run(Thread.java:820) [?:2.9 (01-08-2020)]
Caused by: java.lang.NullPointerException
        at com.yoonicode.minecraftmanhunt.PluginCommands.onCommand(PluginCommands.java:317) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.3.jar:git-Paper-247]

Anything else?

Add a command to clear the team of one person

Description

Describe your proposed feature!
A command that clears the team of the person that runs it, or it is ran at.
/clearteam {player}
/clearteam <--- Would clear the team of yourself

I could see this as useful and easy to implement since you already have the "ClearTeams" command.

Manhunt Compass not working for multiple players

Describe the bug

A clear and concise description of what the bug is.
Tracking Compass only working for one of three hunters

Potential Causes

If you did anything specific to trigger the bug, write it here.
It happens every time no matter what, restarting the server did not fix it

Environment Info

Plugin version: 1.3.3.2
Bukkit/Spigot server version: Bukkit 1.16.1

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

Paste your config.yml file here

# How long the hunters should get blindness and slowness when the match starts.
headStartDuration: 25
compassEnabledInNether: true
sendUsageData: true
enableDiscord: false
discordToken: omitted
ip: omitted
processDiscordCommands: true
discordServerId: omitted
musicChannelId: omitted
hunterRoleId: omitted
runnerRoleId: omitted
spectatorRoleId: omitted
uuid: 1764ca68-1049-4943-816b-9a9bb47cbd56

Server Logs

No errors

Anything else?

Add any other context about the problem here.
I really just don't understand, sometimes it works and others it just doesn't. This is on a private hosted server. Tried with all players opped or not, nothing changed.

Discord two way role sync

Description

Describe your proposed feature!

Hi there,

it would be really cool if the Discord role sync would go 2 ways, so that people can also become a hunter/runner by having that role in Discord, so you can make it so people have to use a reactionrole to become runner/hunter

Add support for target selectors

Description

Add support for target selectors mainly @r, to randomly select someone as speedrunner/hunter.
This plugin is quickly on it's way to becoming the best manhunt plugin, and I feel this would make it better for servers trying to automate the setup process (ME)

Compass doesn't get enchanted if tracked player is already in the nether

Describe the bug

The compass doesn't get its "enchanted color effect" if a hunter starts tracking a speedrunner when they're already in the nether. This can be really confusing (was to me and my friends) because it gives the impression that it's not working, even though it is.

Potential Causes

I have Multiverse-Core and Multiverse-NetherPortals installed too, and I haven't checked if it happens without them installed (I'm pretty sure it does though).

Environment Info

Plugin version: 1.3.3.2

Paper server version: git-Paper-329

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

# How long the hunters should get blindness and slowness when the match starts.
headStartDuration: 5
compassEnabledInNether: true
sendUsageData: true
enableDiscord: false
discordToken: XXXXX
ip: a minecraft server
processDiscordCommands: true
discordServerId: XXXXX
musicChannelId: XXXXX
hunterRoleId: XXXXX
runnerRoleId: XXXXX
spectatorRoleId: XXXXX

(I left UUID out)

Server Logs

Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

[17:42:50] [Server thread/WARN]: [MinecraftManhunt] Task #10189 for MinecraftManhunt v1.3.3.2 generated an exception
java.lang.IllegalArgumentException: Name cannot be null
at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[minecraft_server.jar:git-Paper-329]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.getPlayer(CraftServer.java:537) ~[minecraft_server.jar:git-Paper-329]
at org.bukkit.Bukkit.getPlayer(Bukkit.java:484) ~[minecraft_server.jar:git-Paper-329]
at com.yoonicode.minecraftmanhunt.PluginCommands.UpdateCompass(PluginCommands.java:52) ~[?:?]
at com.yoonicode.minecraftmanhunt.PluginCommands$3.run(PluginCommands.java:299) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:99) ~[minecraft_server.jar:git-Paper-329]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1294) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:377) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1209) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:997) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:178) ~[minecraft_server.jar:git-Paper-329]
at java.lang.Thread.run(Thread.java:834) [?:?]
[17:42:53] [Server thread/WARN]: [MinecraftManhunt] Task #10189 for MinecraftManhunt v1.3.3.2 generated an exception
java.lang.IllegalArgumentException: Name cannot be null
at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[minecraft_server.jar:git-Paper-329]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.getPlayer(CraftServer.java:537) ~[minecraft_server.jar:git-Paper-329]
at org.bukkit.Bukkit.getPlayer(Bukkit.java:484) ~[minecraft_server.jar:git-Paper-329]
at com.yoonicode.minecraftmanhunt.PluginCommands.UpdateCompass(PluginCommands.java:52) ~[?:?]
at com.yoonicode.minecraftmanhunt.PluginCommands$3.run(PluginCommands.java:299) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:99) ~[minecraft_server.jar:git-Paper-329]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1294) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:377) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1209) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:997) ~[minecraft_server.jar:git-Paper-329]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:178) ~[minecraft_server.jar:git-Paper-329]
at java.lang.Thread.run(Thread.java:834) [?:?] 

These happen on /start. Personally I don't think they're relevant to the issue, but I wouldn't really know.


Thank you for making this plugin. It's the best one so far!

When someone dies before the game starts, they get a compass

Describe the bug

When someone dies before the game is started, they get a compass.

Potential Causes

Killing someone before the game starts.

Environment Info

Plugin version: 1.3.1

Bukkit/Spigot server version: 1.16.4

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

# How long the hunters should get blindness and slowness when the match starts.
headStartDuration: 20
compassEnabledInNether: false
sendUsageData: false
enableDiscord: true
discordToken: xxxxx
ip: servas.ggs.gg
processDiscordCommands: false
discordServerId: 773923702651092992
musicChannelId: 773923702651092996
hunterRoleId: XXXXX
runnerRoleId: XXXXX
spectatorRoleId: XXXXX
uuid: 100c7e93-1313-4290-8941-aca8dea14701

Server Logs

Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

None.

Anything else?

Nope.

Make /end restart and delete world

Description

Describe your proposed feature!

Hi there,

As it is really boring to play manhunt on the same map/seed multiple times, what we now do is stop the server, delete the world folders and restart. Would it be possible to add a function so that the /end command actually deletes the world folders and restarts the server.
Alternatively, it could also work if a new command, like /manhunt:restart or /manhunt:reset would just tp everyone far away, although that might mess up the ender portal placements.

LavaPlayer "Unexpected response from YouTube"

Around this week, LavaPlayer has been producing "Unexpected response from YouTube" errors more frequently; now, it is to the point where no tracks are able to be played.

Stack Trace

[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: [MinecraftManhunt] Load track intro failed: Received unexpected response from YouTube.
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Received unexpected response from YouTube.
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:76)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:26)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:200)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:224)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:220)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:96)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:61)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:39)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:188)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:127)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:437)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:419)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:218)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.tools.OrderedExecutor$ChannelRunnable.executeQueue(OrderedExecutor.java:98)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.tools.OrderedExecutor$ChannelRunnable.run(OrderedExecutor.java:87)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at java.lang.Thread.run(Thread.java:745)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: Caused by: java.lang.RuntimeException: Failed to parse: [

(a large blob of the actual content of the fetched page is here)

[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: {"page":"watch","timing":{"info":{"st":301}}}]
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	... 19 more
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: Caused by: java.lang.RuntimeException: No player info block.
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:62)
[11:07:22] [lava-daemon-pool-info-loader-2-thread-1/WARN]: 	... 18 more

Attempted Fixes

  • Tried using a VPN; didn't work. The error response doesn't seem to be due to an IP ban.
  • Tried reenabling loading all tracks on startup. Did not fix, meaning the bug was not introduced in e87ba4d

cant hear discord bot

Describe the bug

A clear and concise description of what the bug is. i can't hear the music bot everything seems to be working though

Potential Causes

If you did anything specific to trigger the bug, write it here.
made the bot

Environment Info

Plugin version: X.X.X
1.3.3.2
Bukkit/Spigot server version: X.X.X
1.16.4

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

Paste your config.yml file here
```# How long the hunters should get blindness and slowness when the match starts.
headStartDuration: 30
compassEnabledInNether: true
sendUsageData: true
enableDiscord: true
discordToken: censord(dont want you to see)
ip: a minecraft server
processDiscordCommands: true
discordServerId: 755250620906340493
musicChannelId: 782278143321964554
hunterRoleId: XXXXX
runnerRoleId: XXXXX
spectatorRoleId: XXXXX
uuid: ea862964-1768-48af-9fa6-feaade9a2dd1

## Server Logs
Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

Paste relevant console warnings/errors here

Can't keep up! Is the server overloaded? Running 43271ms or 865 ticks behind

## Anything else?
Add any other context about the problem here.

/music auto plays the music before the match is started.

Describe the bug

Setting the music to auto starts the music even before the game is started with the /start command and and sometimes it's not even the right one, like for example, I set the hunters and speedrunners, set the /music auto, and when I start it, no music

Potential Causes

I just did /music auto and it starts playing after a sec.

Environment Info

Plugin version: 1.3

Bukkit/Spigot server version: 1.16.4

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

# How long the hunters should get blindness and slowness when the match starts.
headStartDuration: 15
compassEnabledInNether: false
sendUsageData: true
enableDiscord: true
discordToken: xxxxx
ip: verygood.ip
processDiscordCommands: false
discordServerId: 773923702651092992
musicChannelId: 775382857652633600
hunterRoleId: XXXXX
runnerRoleId: XXXXX
spectatorRoleId: XXXXX
uuid: 100c7e93-1313-4290-8941-aca8dea14701

Server Logs

Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

None.

Anything else?

Nothing else.

Port to 1.15.2?

I would like to use this in conjunction with the terminator mod, as the automatic music in this is quite cool. Is there anyway you could port this over rto 1.15.2 or migrate it with this

YouTube links can't be found

Describe the bug

Basically, two songs (timesup and preparing-danger) can't be played due to copyright strikes.

Potential Causes

/music auto

Environment Info

Plugin version: 1.3.3

Bukkit/Spigot server version:
Not applicable, but here you go anyway
Tuinity version git-Tuinity-"957a2ef" (MC: 1.16.4)

Configuration file

N/A

Server Logs

[18:36:21 WARN]: [MinecraftManhunt] Track preparing-danger not found: https://www.youtube.com/watch?v=CYcTNDXUOoY
[18:36:26 WARN]: [MinecraftManhunt] Track timesup not found: https://www.youtube.com/watch?v=dkqslkBUY6E

Anything else?

¯_(ツ)_/¯

Compass points to world spawn

Describe the bug

The compass, despite setting it to point to a player targeted as a speedrunner, it still points at wherever the world's spawnpoint is set.

Potential Causes

Incorrect instalation of the plugin.
config.txt

Environment Info

Plugin version: 1.0

Bukkit/Spigot server version: 1.15.2

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

The config file is up there.

Server Logs

Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

WARNING: Legacy plugin MinecraftManhunt v1.0 does not specify an api-version.

Anything else?

Add any other context about the problem here.

Plugin does not work when online-mode is set to false

Describe the bug

Targeting a speedrunner leads to world spawn. Message in chat says "Compass is now targeting null" instead of player name.

Potential Causes

Changing online mode from true to false.

Environment Info

Plugin version: 1.2.4

Bukkit/Spigot server version: 1.16.3

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

[config.txt](https://github.com/yummypasta/MinecraftManhunt/files/5468166/config.txt)

Server Logs

Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

Anything else?

Add any other context about the problem here.

Compass Won't Track.

My friend and I tried to use this plugin on his server. When we started up the game the commands worked fine, but the compass wouldn't track me even when I was a speedrunner and after the headstart wore off.

/hunter, /speedrunner, /spectator, and /start have internal errors

Describe the bug

Every time I use any of those commands, it says that there's an internal error. The commands that make teams, in the end, are successful, but /start doesn't start the game.

Environment Info

Plugin version: 1.3.2

Bukkit/Spigot server version: 1.16.1

Configuration file

Sending us your plugin config.yml file may help in diagnosing the issue. Paste the contents of the plugin's config file here: (feel free to omit your Discord token for security reasons)

Paste your config.yml file here

# How long the hunters should get blindness and slowness when the match starts.
headStartDuration: 30
compassEnabledInNether: true
sendUsageData: true
enableDiscord: true
discordToken: xxx
ip: a minecraft server
processDiscordCommands: truetry
discordServerId: xxx
musicChannelId: xxx
hunterRoleId: xxx
runnerRoleId: xxx
spectatorRoleId: xxx
uuid: bebddb51-a11f-4668-89bc-98f7ff6de941

Server Logs

Please check your Server Console for any warnings or errors created by the plugin. If any are any, please copy and paste them here:

Paste relevant console warnings/errors here

console log.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.