{"id":15175087,"url":"https://github.com/tsgrissom/MagicScan-Plugin","last_synced_at":"2025-10-01T12:30:54.777Z","repository":{"id":171437338,"uuid":"219338863","full_name":"tsgrissom/MagicScan","owner":"tsgrissom","description":"Minecraft server plugin which scans configurations of NathanWolf's Magic plugin for potential issues and oversights","archived":true,"fork":false,"pushed_at":"2023-03-31T15:08:15.000Z","size":142,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-27T12:01:57.402Z","etag":null,"topics":["bukkit","bukkit-api","bukkit-plugin","bukkit-plugins","craftbukkit","craftbukkit-plugin","java","minecraft","minecraft-plugin","nathanwolf-magic-plugin","spigot","spigot-api","spigot-mc","spigot-plugin","spigot-plugins","spigot-resource","spigotapi","spigotmc"],"latest_commit_sha":null,"homepage":"","language":"Java","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/tsgrissom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2019-11-03T17:30:33.000Z","updated_at":"2024-09-03T06:29:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"f8bcc56d-8a78-4f36-b5dd-e41caeb31dce","html_url":"https://github.com/tsgrissom/MagicScan","commit_stats":null,"previous_names":["potterplus/magicscan","tsgrissom/magicscan"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsgrissom%2FMagicScan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsgrissom%2FMagicScan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsgrissom%2FMagicScan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsgrissom%2FMagicScan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsgrissom","download_url":"https://codeload.github.com/tsgrissom/MagicScan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219875424,"owners_count":16554677,"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-api","bukkit-plugin","bukkit-plugins","craftbukkit","craftbukkit-plugin","java","minecraft","minecraft-plugin","nathanwolf-magic-plugin","spigot","spigot-api","spigot-mc","spigot-plugin","spigot-plugins","spigot-resource","spigotapi","spigotmc"],"created_at":"2024-09-27T12:02:05.288Z","updated_at":"2025-10-01T12:30:54.475Z","avatar_url":"https://github.com/tsgrissom.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MagicScan\n\n[![Build Status](https://travis-ci.com/PotterPlus/MagicScan.svg?branch=master)](https://travis-ci.com/PotterPlus/MagicScan)\n\nScans configurations for potential issues and provides deeper analytics for [NathanWolf's Magic plugin](https://github.com/elBukkit/MagicPlugin) to ensure you have the cleanest, working-as-intended setup as possible.\n\n## Commands\n\nTo do\n\n## Permissions\n\nTo do\n\n## Configuration\n\nThere are several configuration options available for MagicScan. See [here](https://github.com/PotterPlus/MagicScan/blob/master/src/main/resources/config.yml) for the default config.yml with examples.\n\nEach rule can be configured, enabled/disabled, etc. from the rules.yml\n\n| Key                                       | Type        | Description\n|-------------------------------------------|-------------|------------------------\n| scan_on_start                             | boolean     | Whether or not the plugin should initiate a scan when the server starts.\n| scan_hidden                               | boolean     | Whether or not the plugin should scan hidden things.\n| verbose                                   | boolean     | Whether or not the plugin should log loading messages.\n| inactive_scan_timeout                     | integer     | How long after creating a scan, in ticks, it should automatically be removed.\n| interval                                  | integer     | How many ticks to wait between displaying text elements.\n| default_rule_types                        | string list | Which [RuleTypes](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/RuleType.java) should be scanned by default.\n\n### Messages\n\nA lot of MagicScan messages are configurable via the [messages.yml](https://github.com/PotterPlus/MagicScan/blob/master/src/main/resources/config.yml).\n\n## Rules\n\n### Spell\n\n| Key                                | Class                                                                                                                                                                                 | Description\n|------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------\n| actions                            | [SpellActionsRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellActionsRule.java)                                        | Checks if the spell has any parameters that cannot be matched to an action it uses.\n| category                           | [SpellCategoryRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellCategoryRule.java)                                      | Checks if the spell has a valid spell category.\n| cooldown                           | [SpellCooldownRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellCooldownRule.java)                                      | Checks if the spell has a cooldown greater than zero.\n| description                        | [SpellDescriptionRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellDescriptionRule.java)                                | Checks if the spell has a description.\n| icon                               | [SpellIconRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellIconRule.java)                                              | Checks if the spell has a primary icon.\n| icon_disabled                      | [SpellIconDisabledRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellIconDisabledRule.java)                              | Checks if the spell has a disabled icon.\n| key                                | [SpellKeyRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellLevelsRule.java)                                             | Checks if the spell has an underscore, caps, or numbers besides denoting levels.\n| levels                             | [SpellLevelsRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellLevelsRule.java)                                          | Checks if the spell has leveling/progression.\n| mana_match_path                    | [SpellManaMatchPathRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellManaRule.java)                                     | Checks if the spell has casting/active mana costs.\n| mana                               | [SpellManaRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellManaRule.java)                                              | Checks if the spell has casting/active mana costs.\n| name                               | [SpellNameRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellNameRule.java)                                              | Checks if Magic's `messages.defaults.yml` file contains a `name` entry for the spell.\n| path                               | [SpellPathRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellPathRule.java)                                              | Checks if the spell is contained in a path as a regular, required, or extra spell.\n| upgrade_description                | [SpellUpgradeDescriptionRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellUpgradeDescriptionRule.java)                  | Checks if Magic's `messages.defaults.yml` file contains an `upgrade_description` entry for each leveled variant of a spell.\n\n## Tags\n\nMagicScan recognizes a couple of tags that can be attached to spells to manipulate or bypass rule behaviour on a per-spell basis. For example:\n\n_In your spells.yml_\n\n```yaml\nspellkey:\n  tags: noprogression\n```\n\nThe above will not flag the [SpellLevelsRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellLevelsRule.java) despite not having a second level.\n\nThe other tag offered so far is `default`. It is intended for spells that don't appear in a path (like those that appear on base wands by default) so that they can bypass failing a [SpellPathRule](https://github.com/PotterPlus/MagicScan/blob/master/src/main/java/me/tylergrissom/magicscan/rule/spell/SpellPathRule.java) check.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsgrissom%2FMagicScan-Plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsgrissom%2FMagicScan-Plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsgrissom%2FMagicScan-Plugin/lists"}