1.17 (obsolete) Easy Classes 1.1.2

Use a simple command line to select a class for a game without those clunky chests!

  1. GameRoom
    API Version:
    1.17
    TShock Version:
    4.2.7
    Source URL:
    https://github.com/ZakFahey/Easy-Classes
    Generally, when you want to host a class-based gamemode such as Class Wars, you have an elaborate system of chests and switches. No longer! This plugin lets you create your own classes with a JSON file and give them to everyone on a server with a single command.

    Config:
    When the game is initialized, a Classes folder will be created in the TShock/tshock directory. If you create a class, it will look something like this:
    Code:
    {
      "playerClasses": [
        {
          "taken": false,
          "classItems": [
            {
              "name": "Breaker Blade",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Helmet",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Breastplate",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Leggings",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cloud in a Bottle",
              "stack": 1,
              "prefix": 65
            },
            {
              "name": "Life Crystal",
              "stack": 10,
              "prefix": 0
            }
          ],
          "name": "Warrior",
          "description": "He swings a huge sword. Good at close range."
        },
        {
          "taken": false,
          "classItems": [
            {
              "name": "Shotgun",
              "stack": 1,
              "prefix": 60
            },
            {
              "name": "Cobalt Helmet",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Breastplate",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Leggings",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Life Crystal",
              "stack": 8,
              "prefix": 0
            },
            {
              "name": "Cloud in a Bottle",
              "stack": 1,
              "prefix": 0
            }
          ],
          "name": "Gunner",
          "description": "He wields the finest of shotguns. Watch out."
        },
        {
          "taken": false,
          "classItems": [
            {
              "name": "Cursed Flames",
              "stack": 1,
              "prefix": 83
            },
            {
              "name": "Cobalt Hat",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Breastplate",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Cobalt Leggings",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Life Crystal",
              "stack": 6,
              "prefix": 0
            },
            {
              "name": "Cloud in a Bottle",
              "stack": 1,
              "prefix": 0
            },
            {
              "name": "Mana Crystal",
              "stack": 9,
              "prefix": 0
            },
            {
              "name": "Mana Regeneration Band",
              "stack": 1,
              "prefix": 66
            }
          ],
          "name": "Wizard",
          "description": "He uses the darkest of magic."
        }
      ]
    }
    If you are familiar with JSON files, this should be pretty self-explanatory. Classes are in brackets separated by commas, and the items the classes have are in another set of brackets. Don't mess with the "taken" parameter; it's just used within the plugin itself.

    Analytics:
    In the Classes folder there is a file that shows the number of plays, kills, and deaths any class has. This is ideal for balancing classes.

    Commands:
    /classstart <filename> [can have duplicates] - Gives everyone with the easyclasses.guest.play permission a selection of classes from the given file. For example, /classstart myclass.json. If the class set doesn't exist, it will be created. However, this default config is imbalanced and just for exemplary purposes; you shouldn't actually use it.
    /classstop - Stops players from getting prompted to pick a class on join.
    /classlist [page number] - Lists all of the files in the Classes directory created to store class sets.
    /class start <class> - A player prompted to choose a class can do so with this command.
    /classinfo <class> - Show the statistics of a class for balancing purposes. There is also an analytics file in the Classes folder that shows all of this.
    /class list [page number] - Lists all available classes given.
    /class info <class> - Gives a description of the given class.