{"id":23639130,"url":"https://github.com/ericyoondotcom/minecraftmanhunt","last_synced_at":"2025-08-31T14:32:15.175Z","repository":{"id":49988843,"uuid":"290348252","full_name":"ericyoondotcom/MinecraftManhunt","owner":"ericyoondotcom","description":"Minecraft Bukkit plugin to run Manhunt minigames, with Discord music integration","archived":false,"fork":false,"pushed_at":"2024-02-20T21:34:44.000Z","size":258,"stargazers_count":24,"open_issues_count":9,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-21T22:28:29.886Z","etag":null,"topics":["bukkit","bukkit-plugin","discord","discord-bot","java","jda","jda-bot","lavaplayer","minecraft","minecraft-plugin","spigot","spigot-plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericyoondotcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-25T23:45:09.000Z","updated_at":"2024-02-20T18:11:27.000Z","dependencies_parsed_at":"2022-08-30T15:01:02.323Z","dependency_job_id":null,"html_url":"https://github.com/ericyoondotcom/MinecraftManhunt","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericyoondotcom%2FMinecraftManhunt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericyoondotcom%2FMinecraftManhunt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericyoondotcom%2FMinecraftManhunt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericyoondotcom%2FMinecraftManhunt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericyoondotcom","download_url":"https://codeload.github.com/ericyoondotcom/MinecraftManhunt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231600663,"owners_count":18398551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bukkit","bukkit-plugin","discord","discord-bot","java","jda","jda-bot","lavaplayer","minecraft","minecraft-plugin","spigot","spigot-plugin"],"created_at":"2024-12-28T08:12:40.871Z","updated_at":"2024-12-28T08:12:41.407Z","avatar_url":"https://github.com/ericyoondotcom.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MinecraftManhunt\n[View on Bukkit](https://dev.bukkit.org/projects/dream-style-manhunt) • \n[View on SpigotMC](https://www.spigotmc.org/resources/dream-style-manhunt.83309/) •\n[View on PaperMC](https://papermc.io/forums/t/dream-style-manhunt/5072)\n\n\u003e **Having issues?** Check the [FAQ Issues page](https://github.com/yummypasta/MinecraftManhunt/issues?q=label%3AFAQ), or report a problem on the [Issues tab](https://github.com/yummypasta/MinecraftManhunt/issues/new/choose)!\n\n---\n\nMade by Eric ([yoonicode.com](http://yoonicode.com/?utm_source=github\u0026utm_medium=web\u0026utm_campaign=manhunt-github))\u003cbr\u003e\nGithub: [ericyoondotcom](https://github.com/ericyoondotcom)\u003cbr\u003e\nMinecraft: [TildeTildeTilde](https://namemc.com/profile/i18n.4)\n\n---\n\nInspired by [Dream](https://youtube.com/dreamtraps) on YouTube\n\n\n## How It Works\nThree teams: Hunters, Runners, and Spectators\nHunters try to kill the runners before they beat the enderdragon. Runners must beat the enderdragon before they get killed once!\n\n## Features\n- Compass tracking: Right-click with your compass to choose who to track, then the compass will point to that runner!\n- Portal tracking: If a runner is in the nether, the compass will track their last-used portal!\n- Teams assignment: Automatically assigns in-game `/team` to distinguish between players with colors!\n- Discord integration: Optionally integrate with Discord for extra features!\n  - Auto role assignment: Automatically assign Discord roles according to teams\n  - Music player: Automatically (or manually) play music in your Discord voice channel that mirrors the action happening!\n\n## Instructions For Use\n- Move the .jar from the [Releases tab](https://github.com/yummypasta/MinecraftManhunt/releases/) to your plugins folder.\n- Make sure your config file is up to date and has all the required options.\n- Assign roles with `/speedrunner`, `/hunter`, and `/spectator`.\n- If you want automatic music, type `/music auto` now.\n- Type `/start`!\n- 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.\n\n\u003e **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.\n\n### Discord Setup Instructions\n- Create a Discord app from the [Developer Portal](https://discord.com/developers/applications).\n- Add a Bot under the bots tab.\n- Scroll down and enable the toggles under \"server members intent\" and \"message content intent\".\n- Take note of your **Client ID** (in the General Information tab) and your **Token** (under the Bot tab).\n- Go to the following link, replacing `123YourClientID456` with your client ID: `https://discord.com/oauth2/authorize?scope=bot\u0026client_id=123YourClientID456\u0026permissions=8`\n- Select the Discord server to add your bot to.\n- Add your Client ID and Token to the respective fields in the config file.\n- Go to your Discord server, and add the following values to the config file, in accordance with the table above (you can `Right Click \u003e Copy ID` if you turn on Developer Mode in Discord settings!)\n  - the ID of your server\n  - the ID of the voice channel you want your music to play in\n  - the ID of the hunter, runner, and spectator Discord roles you want to be automatically assigned\n\u003e **Note**: For auto-role-assignment to work, each Discord user's nickname for your Server must be set to their Minecraft username.\n\n## Commands\n- `/speedrunner \u003cusername\u003e`: Assign speedrunner role\n- `/hunter \u003cusername\u003e`: Assign hunter role\n- `/spectator \u003cusername\u003e`: Assign spectator role\n- `/start`: Start the match\n- `/end`: End the match\n- `/compass`: Give yourself a compass\n- `/music`: Controls the Discord music\n  - `/music list`: Gets a list of available tracks to play.\n  - `/music \u003ctrackname\u003e`: Plays a specific track by nickname and turns off auto-music.\n  - `/music stop`: Stops all music playing and turns off auto-music.\n  - `/music auto`: Turns on auto-music, which plays different tracks based on game events and hunter/runner distance.\n  - `/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.\n- `/setheadstart \u003cduration\u003e`: Sets the headstart duration, in seconds. \n## Configuration Options\nEdit the `plugins/MinecraftManhunt/config.yml` file with the following options:\n  \n  ### Game Options\n  Key|Description|Type|Required?\n  --|--|--|--\n  headStartDuration | How long the hunters should get blindness and slowness when the match starts, in secs. | int | Required\n  compassEnabledInNether | Set to true to allow the compass to work in the nether. | boolean | Optional, defaults to `true`\n  sendUsageData | Set to true to send anonymized, aggregated usage data to help improve the plugin. | boolean | Optional, defaults to `false`\n  uuid | Randomized id that is automatically assigned if `sendUsageData` is enabled. **Please do not touch this field.** | string | Do not set manually\n  ### Extra Options\n  Key|Description|Type|Required?\n  --|--|--|--\n  setRunnersToSpecOnDeath | Set to true to set runners' gamemodes to spectator when they die. | boolean | Optional, defaults to `true`\n  huntersColor | The color to give to the `hunters` team. | string | Optional\n  runnersColor | The color to give to the `runners` team. | string | Optional\n  spectatorsColor | The color to give to the `spectators` team. | string | Optional\n  clearRunnerInvOnStart | Set to true to clear the runners' inventories and experience when the game starts. | boolean | Optional, defaults to `false`\n  clearHunterInvOnStart | Set to true to clear the hunters' inventories and experience when the game starts. | boolean | Optional, defaults to `false`\n  clearItemDropsOnStart | Set to true to clear all Item entities when the game starts. | boolean | Optional, defaults to `false`\n  setTimeToZero | Set to true to reset the game time when the game starts. | boolean | Optional, defaults to `true`\n  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`\n  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`\n  preGameBorderSize | States how big the pre-game world border would be, if enabled. | int | Optional, defaults to `100`; ignored when `preGameWorldBorder` is `false`\n\n\n  ### Discord Integration\n  Key|Description|Type|Required?\n  --|--|--|--\n  enableDiscord | Set to true to turn on Discord integration. Read below for more information. | boolean | Required\n  discordToken | Enter the token of your Discord bot here. | string | Required if `enableDiscord` is `true`\n  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\n  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`\n  discordServerId | The ID of your Discord server that the bot is on. | string | Required if `enableDiscord` is `true`\n  musicChannelId | The ID of the voice channel that the bot should play music on. | string | Required if `enableDiscord` is `true`\n  hunterRoleId | The ID of the role to assign to Hunters. | string | Optional\n  runnnerRoleId | The ID of the role to assign to Runners. | string | Optional\n  spectatorRoleId | The ID of the role to assign to Spectators. | string | Optional\n\n\u003e Note: if any of the role IDs are missing or invalid, no roles will be assigned.\n\n## Permissions\nPermission|Description|Recommended level\n--|--|--\n`minecraftmanhunt.hunter` | Allow `/hunter` command | everyone\n`minecraftmanhunt.speedrunner` | Allow `/speedrunner` command | everyone\n`minecraftmanhunt.spectator` | Allow `/spectator` command | everyone\n`minecraftmanhunt.clearteams` | Allow `/clearteams` command | operators\n`minecraftmanhunt.start` | Allow `/start` command | operators\n`minecraftmanhunt.end` | Allow `/end` command | operators\n`minecraftmanhunt.compass` | Allow `/compass` command | everyone\n`minecraftmanhunt.music` | Allow `/music` command. Note that music commands can also be typed in Discord if `processDiscordCommands` in config is set to `true`. | everyone\n`minecraftmanhunt.config` | Allow config-changing commands, such as `/setheadstart`. | operators\n\n## Music Queues\nPart 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.\n\n### Distance\nThe intensity of the music depends on the distance between the runners and the hunters. Tracks are selected at random from the following categories:\n- \u003c 50 blocks away: Chasing\n- \u003c 150 blocks away: In Sight\n- \u003c 300 blocks away: Stealth\n- \u003c 450 blocks away: Approaching\n- \\\u003e= 450 blocks away: Far away\n\nAdditionally, there is a set of tracks that play if the runners, but not the hunters, are in the Nether.\n\n### Special Events\nSpecial tracks play when events related to the game occur. Some events are:\n- The runners mine their first iron ore\n- The runners mine a diamond ore\n- The hunters craft their first piece of iron armor\n- The hunters and runners damage each other\n  - \"Chase\" music plays if the fighters have a combined total of less than two pieces of armor\n  - \"Fight\" music plays if they have more than two pieces of armor\n- A hunter dies\n- A runner dies\n- Both players are in boats\n- A runner trades with a Piglin for the first time\n- A runner teleports to the end\n\n## Troubleshooting\n- `online-mode` in server.properties must be set to `true` as of version 1.2.4.\n- If you are using Discord integration, make sure your server's system clock is set correctly.\n- Check the [FAQ Issues page](https://github.com/yummypasta/MinecraftManhunt/issues?q=label%3AFAQ), or report a problem on the [Issues tab](https://github.com/yummypasta/MinecraftManhunt/issues/new/choose)!\n\n## Advanced: Developing\n- This project uses Maven. To build, run the `package` script.\n- Pull requests and Issues are welcome!\n\n## Made With\n- [Bukkit/Spigot plugin library](https://bukkit.org/)\n- [JDA: Java Discord Library](https://github.com/DV8FromTheWorld/JDA)\n- [LavaPlayer: Audio Player for Discord](https://github.com/sedmelluq/lavaplayer)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericyoondotcom%2Fminecraftmanhunt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericyoondotcom%2Fminecraftmanhunt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericyoondotcom%2Fminecraftmanhunt/lists"}