Lesson Format¶
The following is used to format lessons:
Lesson Information JSON —> lessonSchema.json¶
{
"subject": "CLASS SUBJECT ie: TRANSFIGURATION",
"year": [1-7],
"numberOfLessons": [1 -> Integer.MAX_VALUE],
"professor": { NPC-DATA-OBJECT } //Not including NPC-DATA-OBJECT in documentation.
}
Lesson File¶
{
"information": { INFORMATION-OBJECT },
"sections": [ { LESSON-SECTIONS-OBJECT } ],
"homework": { HOMEWORK-OBJECT }
}
INFORMATION-OBJECT¶
{
"title": "CLASS TITLE",
"type": "LECTURE",
"subject": "CLASS SUBJECT ie: TRANSFIGURATION",
"year": [1-7],
"examQuestionCount":
}
HOMEWORK-OBJECT¶
{
"type": "WRITTEN",
"description": "WORDS ABOUT HOMEWORK REQUIREMENTS"
}
LESSON-SECTIONS-OBJECT¶
{
"lecture": [{LECTURE-OBJECT}],
"spellsLearning": [{SPELLS-OBJECT}],
"spellsQuiz": [{SPELLS-OBJECT}],
"potionIngredientsLearning": [{POTION-INGREDIENTS-OBJECT}],
"potionIngredientsTest": [{POTION-INGREDIENTS-OBJECT}],
"potionsLearning": [{POTION-OBJECT}],
"potionsQuiz": [{POTION-OBJECT}],
"questions": [{QUESTION-OBJECT}],
"giveItems": [{GIVE-ITEMS-OBJECT}],
"questTask": [{QUEST-TASK-OBJECT}]
}
LECTURE-OBJECT¶
{
"words": ["words", "that", "exist"],
"speed": 250,
"speaker": "Acool Name"
}
SPELLS-OBJECT¶
{
"intro": "optional string",
"spellname": "UPPER_UNDERSCORE_SPELL_NAME",
"description: "A cool description",
"reward": 1,
"delay": [1-INTEGER.MAX_VALUE], //Used for spell quiz delay in seconds.
"speed": 250,
"amount": 1 //Amount required to cast to move on.
}
POTION-INGREDIENTS-OBJECT¶
{
"outcome": "potion in potions cookbook to make"
}
POTION-OBJECT¶
{
"outcome": "potion in potions cookbook to make",
"time": [1->Integer.MAX_VALUE], //Used for potion quiz time, in minutes.
"reward": 3,
"speed": 250
}
QUESTION-OBJECT¶
{
"question": "A really awesome question?",
"options": [{OPTION-OBJECT}],
"answers": ["This", "Is", "for", "Single-answer"],
"type": "SINGLE_ANSWER or MULTIPLE",
"pause": integer in seconds,
"points" integer points reward,
"showAnswer": true/false
}
OPTION-OBJECT¶
{
"choice": "The choice",
"answer": true/false
}
GIVE-ITEMS-OBJECT¶
{
"itemReference": "item-register-api item id.",
"title": "display name used.",
"material": "Material to use from Spigot.",
"lore": ["lore","for","item"]
}
QUEST-TASK-OBJECT¶
{
"taskMetadata": [{TASK-METADATA}],
"points": integer for points for above tasks.
}
TASK-METADATA¶
{
"taskInformationLine": "Information about task from professor",
"taskNotCompleteLine": "Line professor will repeat til task is done",
"taskName": "Name of the task.",
"taskType": "The Task type from Quests",
"target": "Whatever object, npc, block, etc needs to be targetted. Matches Quest target.",
"locations": [{LOCATION-METADATA}],
"classroomSpecificTask": [{CLASSROOM-SPECIFIC}],
"questTaskNotCompleteLine": "Quest's task not complete line which we dont really use in classrooms.",
"targetItems": [{TARGET-QUEST-ITEMS}],
"optional": {
"key": "value",
"key2": "value2"
},
"turnInOnFinish": true/false,
"amountRequired": integer for how many times to complete this task.
}
LOCATION-METADATA¶
{
"world": "world name",
"x": 0.0,
"y": 0.0,
"z": 0.0,
"yaw": 0.0f,
"pitch": 0.0f,
"node: "node name",
"message": "Message attached to this location."
}
CLASSROOM-SPECIFIC¶
{
"worldGuardRegion": "region for the specific classroom",
"locations": [{LOCATION-METADATA}],
"target": "Target for this specific classroom specific task."
}
TARGET-QUEST-ITEMS¶
{
"itemRegistryPlugin": "plugin for the item you search for.",
"itemRegistryID": "id for the item. If these two slots are filled, rest are ignored.",
"amount": integer amount,
"title": "Display name",
"lore": ["lore","for","item"],
"material": "Spigot Material type.",
"loreContains": "Check on if the lore contains something."
"description": "Item description.",
"unbreakable": if the item must be unbreakable. true/false,
"customModelData": integer for custom model data field
}