{"id":15174321,"url":"https://github.com/ckay-9/duelcraft","last_synced_at":"2026-02-28T01:02:22.220Z","repository":{"id":250227413,"uuid":"833354443","full_name":"CKAY-9/duelcraft","owner":"CKAY-9","description":"A Simple Dueling Plugin for Minecraft Servers","archived":false,"fork":false,"pushed_at":"2024-07-26T21:01:56.000Z","size":3862,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-01T11:09:43.211Z","etag":null,"topics":["1v1","duel","fun","java","minecraft","misc","multiplayer","plugin","spigot"],"latest_commit_sha":null,"homepage":"https://www.spigotmc.org/resources/duelcraft.118361/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CKAY-9.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-24T21:54:08.000Z","updated_at":"2024-07-26T21:00:48.000Z","dependencies_parsed_at":"2024-07-26T01:18:29.521Z","dependency_job_id":"bf46f4c1-e7e1-4e45-8e80-e74d2780eaaf","html_url":"https://github.com/CKAY-9/duelcraft","commit_stats":{"total_commits":12,"total_committers":1,"mean_commits":12.0,"dds":0.0,"last_synced_commit":"392c7537ff7c1a836f5bea55a28fcdca3f448abd"},"previous_names":["ckay-9/duelcraft"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CKAY-9%2Fduelcraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CKAY-9%2Fduelcraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CKAY-9%2Fduelcraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CKAY-9%2Fduelcraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CKAY-9","download_url":"https://codeload.github.com/CKAY-9/duelcraft/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232071654,"owners_count":18468551,"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":["1v1","duel","fun","java","minecraft","misc","multiplayer","plugin","spigot"],"created_at":"2024-09-27T11:42:59.450Z","updated_at":"2025-11-11T01:02:06.941Z","avatar_url":"https://github.com/CKAY-9.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./assets/icon.png\" width=300 height=auto /\u003e\n\u003c/div\u003e\n\n### \u003cdiv align=\"center\"\u003eA Simple Dueling Plugin for Minecraft Servers.\u003c/div\u003e\n\n## \u003cdiv align=\"center\"\u003eFeatures\u003c/div\u003e\n- Dueling system\n- Win/loss/kills/deaths tracking\n- Configurable\n- GUI\n\n## \u003cdiv align=\"center\"\u003eHow to Install\u003c/div\u003e\n1. Download the latest release of DuelCraft\n2. Drop the `duelcraft-version.jar` file into your server's `./plugins` folder\n3. Reload/restart your server\n4. You're done\n\n## \u003cdiv align=\"center\"\u003eHow to Use\u003c/div\u003e\nPlayers are able to engage in duels via the command `/duel [opponent_name]`. The opponent will have to accept\nthe request before the duel starts. Duel requests expire after a configurable amount of time. Additionally, the command `/duel` will open a GUI for players to select who to challenge.\n\n### Commands\n- `/duel [player_name]`: If player_name is left blank (e.g. `/duel`), this command will open a GUI menu to interact with DuelCraft. If player_name is provided (e.g. `/duel CKAY_9`), it will try to send a duel challenge to the provided player.\n\n## \u003cdiv align=\"center\"\u003eDeveloping (also useful to server owners)\u003c/div\u003e\nDuelCraft uses Spigot API v1.20.6, but works with (from what I have tested) Minecraft v1.20.6+. The structure of DuelCraft as a system is pretty simple. \n\n### Initialization, onEnable()\n- Initialize storage files (config and data) and register tasks, listeners, commands, etc.\n\n### User Interaction\n- Handle user inputs, either through the command or the GUI\n- (GUI) Either invite/create a duel, accept a duel, or view admin utilities (OP permissions required)\n- (Command) Open GUI if no arguments are provided, otherwise send duel challenge to the first argument\n\n### Matches\n- Matches have three \"phases\" (booleans): accepted, started, ended\n- Players can't send other invites if they already have an outgoing request\n- Once the challenged player accepts, a five second countdown starts where the \"arena world\" (flat world) is generated (`accepted = true`)\n- At the end of the countdown, the players are teleported to the arena world at different locations (`±(arena_radius * 0.5)` on the center X position) and given the items provided in the config (`started = true`)\n- Matches end when a player will be below `0.5` HP (half a heart), leave, or just die. Another five second countdown begins, match results are announced (`ended = true`)\n- At the end of the countdown, the players are teleported back to their original location (world and position) and given their items back\n\n### Storage\n- Player data is saved in a file named `/plugins/DuelCraft/data.yml`\n- Players stats are updated at the end of each match\n- YAML layout: \n```\ndata.yml\n\nplayers:\n    [player_uuid]:\n        wins: int\n        losses: int\n        kills: int\n        deaths: int\n    ...\n```\n\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./assets/2024-07-25_15.48.57-min.png\" width=auto height=auto /\u003e\n    \u003cimg src=\"./assets/2024-07-25_15.49.30-min.png\" width=auto height=auto /\u003e\n    \u003cimg src=\"./assets/2024-07-25_15.49.50-min.png\" width=auto height=auto /\u003e\n    \u003cimg src=\"./assets/2024-07-25_15.50.03-min.png\" width=auto height=auto /\u003e\n    \u003cimg src=\"./assets/2024-07-25_15.50.34-min.png\" width=auto height=auto /\u003e\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckay-9%2Fduelcraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fckay-9%2Fduelcraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckay-9%2Fduelcraft/lists"}