{"id":16329383,"url":"https://github.com/josantonius/minecraft-purge","last_synced_at":"2025-05-15T08:33:59.903Z","repository":{"id":165747174,"uuid":"640092115","full_name":"josantonius/minecraft-purge","owner":"josantonius","description":"Purge plugin for Minecraft servers","archived":false,"fork":false,"pushed_at":"2024-02-16T22:38:44.000Z","size":8716,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T10:13:29.831Z","etag":null,"topics":["minecraft","minecraft-plugin","minecraft-purge","purge"],"latest_commit_sha":null,"homepage":"https://josantonius.dev","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/josantonius.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["Josantonius"]}},"created_at":"2023-05-13T01:14:35.000Z","updated_at":"2024-04-03T18:32:48.000Z","dependencies_parsed_at":"2024-02-16T23:34:37.791Z","dependency_job_id":"dec7e3cf-92bc-4277-ad26-5ec9c233a031","html_url":"https://github.com/josantonius/minecraft-purge","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josantonius%2Fminecraft-purge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josantonius%2Fminecraft-purge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josantonius%2Fminecraft-purge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josantonius%2Fminecraft-purge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/josantonius","download_url":"https://codeload.github.com/josantonius/minecraft-purge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254304837,"owners_count":22048480,"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":["minecraft","minecraft-plugin","minecraft-purge","purge"],"created_at":"2024-10-10T23:15:22.486Z","updated_at":"2025-05-15T08:33:59.843Z","avatar_url":"https://github.com/josantonius.png","language":"Kotlin","funding_links":["https://github.com/sponsors/Josantonius"],"categories":[],"sub_categories":[],"readme":"# Minecraft Purge Plugin\n\n[![License](https://img.shields.io/github/license/josantonius/minecraft-purge)](LICENSE)\n\nPurge plugin for Minecraft servers.\n\n## [Watch demo on YouTube](https://www.youtube.com/watch?v=rLDzeU9BkUI)\n\n## Requirements\n\n- Java 17 or higher.\n- Purpur server 1.19.3 or Bukkit/Spigot/Paper server compatible with the Purpur API version used.\n\n## Installation\n\n1. Download the JAR file: [purge-1.0.1-purpur-1.19.3.jar](/build/libs/purge-1.0.1-purpur-1.19.3.jar).\n\n1. Place the JAR file in the plugins folder of your Minecraft server.\n\n1. Restart the server to load the plugin.\n\n## Building\n\nTo build the plugin yourself, follow these steps:\n\n1. Make sure you have `Java 17` or higher and `Gradle` installed on your system.\n\n1. Clone the plugin repository on your local machine:\n\n    ```bash\n    git clone https://github.com/josantonius/minecraft-purge.git\n    ```\n\n1. Navigate to the directory of the cloned repository:\n\n    ```bash\n    cd minecraft-purge\n    ```\n\n1. Use Gradle to compile the plugin:\n\n    ```bash\n    gradle build\n    ```\n\n### Introduction and duration of The Purge\n\n- The Purge begins with a 2-minute introduction that announces the start of the game and plays the\nannouncement sound.\n\n  During the announcement, the list of rules and privileges that will be nullified during the purge\n  will be displayed in the chat. You can add or remove rules and privileges by editing the\n  corresponding lines in the plugin's message file (`plugins/Purge/messages.yml`).\n\n  ```yml\n  rules:\n    rule_1: \"\u003cdark_gray\u003eRule 04 \u003cred\u003e- \u003cdark_aqua\u003ePvP abuse is allowed\"\n    rule_2: \"\u003cdark_gray\u003eRule 11 \u003cred\u003e- \u003cdark_aqua\u003eTPA Kill is allowed\"\n\n  privileges:\n    privilege_1: \"\u003cdark_gray\u003ePrivilege 08 \u003cred\u003e- \u003cdark_aqua\u003eExperience is dropped upon death\"\n    privilege_2: \"\u003cdark_gray\u003ePrivilege 15 \u003cred\u003e- \u003cdark_aqua\u003eInventory is dropped upon death\"\n    privilege_3: \"\u003cdark_gray\u003ePrivilege 24 \u003cred\u003e- \u003cdark_aqua\u003eBackpack is dropped upon death\"\n  ```\n\n- After 2 minutes, the game starts playing the startup sound (it lasts 03:04 and repeats in a loop)\nand displaying a message in the chat announcing the start of the purge.\n\n- At the end, the end sound is played and a message is displayed in the chat announcing the end of\nthe purge.\n\n## Game Modes\n\nThe Purge has two game modes: supervised and unsupervised.\n\n### Supervised Mode\n\nIn supervised mode, players can request immunity, but operators or players with `purge.admin`\npermission must manually grant it. Operators and players with `purge.admin` permission have\nguaranteed immunity in this mode and will not require prior approval.\n\nTo grant or withdraw immunity at any time, operators or players with `purge.admin` permission can\nuse the following command:\n\n```yml\n/purge immune [add/remove] \u003cplayer\u003e\n```\n\n### Unsupervised Mode\n\nIn unsupervised mode, immunity is automatically granted. If players request immunity during the\nannouncement time, it will be automatically granted at the start of The Purge. If they request it\nafter The Purge has started, it will be automatically granted between 3 and 8 minutes later. If they\nrequest immunity when there are 10 minutes or less to start, no immunity will be granted.\n\n### Immunity\n\nPlayers with immunity:\n\n- Cannot be attacked by players without immunity.\n- Cannot attack players without immunity.\n- Can attack other immune players.\n- Can be attacked by other immune players.\n- Will not lose their inventory, experience, and backpack upon death.\n- Will be able to execute commands blocked during The Purge.\n- Will have the \"glowing\" effect during The Purge to be easily identified.\n- They are prefixed with `[Immune]` in the list of players if the dependency to the TAB plugin exists.\n\nPlayers without immunity:\n\n- Cannot be attacked by immune players.\n- Cannot attack immune players.\n- Can attack other players without immunity.\n- Can be attacked by other players without immunity.\n- Will lose their inventory, experience, and backpack upon death.\n- Will not be able to execute commands blocked during The Purge.\n- Will not have the \"glowing\" effect during The Purge.\n\n**No distinction is made between operators or game modes. All players, both immune and non-immune,\nare treated the same way.**\n\n**Immunity protection covers players against direct attacks (hits, projectiles, throwable potions...),\nbut not against indirect damages such as those caused by explosions, fires, or lava.**\n\n## Commands\n\n- `/purge help` - Displays the plugin help. Permission: `purge.use`.\n\n- `/purge immune \u003caction\u003e \u003cplayer\u003e` - Grants or withdraws immunity to a player. Permission: `purge.admin`.\n\n- `/purge exit` - Requests immunity during The Purge. Permission: `purge.use`.\n\n- `/purge start \u003ctime\u003e \u003cmode\u003e` - Starts The Purge.  Permission: `purge.admin`.\n\n- `/purge end` - Ends The Purge immediately.  Permission: `purge.admin`.\n\n- `/purge cancel` - Cancels The Purge.  Permission: `purge.admin`.\n\n- `/purge reload` - Reloads the plugin.  Permission: `purge.admin`.\n\n## Configuration\n\nThe `plugins/Purge/config.yml` file contains specific plugin configurations.\n\nHere you can set different options such as the sounds that will be played during the different\nmoments of The Purge and the commands that will be blocked for players without immunity during The Purge.\n\n```yaml\n# Sound to be played when The Purge is announced.\nannouncePurgeSound: \"minecraft:purge.sound.announce\"\n\n# Sound that will be played during The Purge.\nongoingPurgeSound: \"minecraft:purge.sound.ongoing\"\n\n# Sound that will be played when The Purge ends.\nendPurgeSound: \"minecraft:purge.sound.end\"\n\n# Commands that players without immunity will not be able to use during The Purge.\nblockedCommands:\n  - \"/spawn\"\n  - \"/home\"\n\n# Main world. Here players will be sent from the locked worlds.\nmainWorld: \"spawn\"\n\n# Worlds that will not be used during the purge.\nblockedWorlds:\n  - \"world_nether\"\n  - \"world_the_end\"\n\n# Apply a cooldown of n seconds between uses to the ender pearls.\nenderPearlCooldown: 10\n\n# Apply a cooldown of n seconds between uses to the firework rockets.\nfireworkRocketCooldown: 10\n```\n\n## Messages\n\nThe `plugins/Purge/messages.yml` file contains all the messages that the plugin uses.\nYou can change the messages to your liking.\n\n## Resources pack\n\nThe plugin includes a resource pack that adds sounds to the game. The resource pack is optional and\nis not required for the plugin to work. You can download the resource pack for the version of the\ngame you are using:\n\n- [Resource pack for 1.19 version](resource-packs/purge-resource-pack-1.19.zip)\n- [Resource pack for 1.20 version](resource-packs/purge-resource-pack-1.20.zip)\n\n**The announcement sound do not include the voice of the announcer. If you want to add voices like\nthe one used in the video demo you can do it from [https://genny.lovo.ai](https://genny.lovo.ai).**\n\nThree sounds are played during the purge: an announcement sound, a sound during the process,\nand a sound at the end. These sounds can be customized in the plugin's configuration file\n(`plugins/Purge/config.yml`). Each of these sounds are defined as follows:\n\n### Announcement Sound\n\nThis is the sound that plays when The Purge is announced. By default, the sound is\n`minecraft:purge.sound.announce`. To change it, you must edit the corresponding line in the\nconfiguration file:\n\n```yaml\nongoingPurgeSound: \"minecraft:purge.sound.announce\"\n```\n\nReplace `minecraft:purge.sound.announce` with the name of the sound you want to use.\n\n### Sound During The Purge\n\nThis is the sound that plays during The Purge. By default, the sound is\n`minecraft:purge.sound.ongoing`. To change it, you must edit the corresponding\nline in the configuration file:\n\n```yaml\nongoingPurgeSound: \"minecraft:purge.sound.ongoing\"\n```\n\nReplace `minecraft:purge.sound.ongoing` with the name of the sound you want to use.\n\n### Sound at the End of The Purge\n\nThis is the sound that plays when The Purge ends. By default, the sound is\n`minecraft:purge.sound.end`. To change it, you must edit the corresponding line\nin the configuration file:\n  \n```yaml\nendPurgeSound: \"minecraft:purge.sound.end\"\n```\n\nReplace `minecraft:purge.sound.end` with the name of the sound you want to use.\n\nTo add custom sounds, you must include them in a resource pack and add the corresponding entries in\nthe `sounds.json` file of the package. The following shows an example of how the sounds are defined\nin this file:\n\n```yml\n{\n  \"purge.sound.announce\": {\n    \"sounds\": [\n      {\n        \"name\": \"purge/announce_purge\",\n        \"stream\": true\n      }\n    ]\n  },\n  \"purge.sound.ongoing\": {\n    \"sounds\": [\n      {\n        \"name\": \"purge/ongoing_purge\",\n        \"stream\": true\n      }\n    ]\n  },\n  \"purge.sound.end\": {\n    \"sounds\": [\n      {\n        \"name\": \"purge/end_purge\",\n        \"stream\": true\n      }\n    ]\n  }\n}\n```\n\n## TODO\n\n- [ ] Add new feature\n- [ ] Create tests\n- [ ] Improve documentation\n\n## Changelog\n\nDetailed changes for each release are documented in the\n[release notes](https://github.com/josantonius/minecraft-purge/releases).\n\n## Contribution\n\nPlease make sure to read the [Contributing Guide](.github/CONTRIBUTING.md), before making a pull\nrequest, start a discussion or report a issue.\n\nThanks to all [contributors](https://github.com/josantonius/minecraft-purge/graphs/contributors)! :heart:\n\n## Sponsor\n\nIf this project helps you to reduce your development time,\n[you can sponsor me](https://github.com/josantonius#sponsor) to support my open source work :blush:\n\n## License\n\nThis repository is licensed under the [MIT License](LICENSE).\n\nCopyright © 2023-present, [Josantonius](https://github.com/josantonius#contact)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosantonius%2Fminecraft-purge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosantonius%2Fminecraft-purge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosantonius%2Fminecraft-purge/lists"}