============= Lesson Format ============= The following is used to format lessons: Lesson Information JSON ---> lessonSchema.json ---------------------------------------- .. code-block:: 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 ----------- .. code-block:: json { "information": { INFORMATION-OBJECT }, "sections": [ { LESSON-SECTIONS-OBJECT } ], "homework": { HOMEWORK-OBJECT } } INFORMATION-OBJECT ^^^^^^^^^^^^^^^^^^ .. code-block:: json { "title": "CLASS TITLE", "type": "LECTURE", "subject": "CLASS SUBJECT ie: TRANSFIGURATION", "year": [1-7], "examQuestionCount": } HOMEWORK-OBJECT ^^^^^^^^^^^^^^^ .. code-block:: json { "type": "WRITTEN", "description": "WORDS ABOUT HOMEWORK REQUIREMENTS" } LESSON-SECTIONS-OBJECT ^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json { "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 ^^^^^^^^^^^^^^ .. code-block:: json { "words": ["words", "that", "exist"], "speed": 250, "speaker": "Acool Name" } SPELLS-OBJECT ^^^^^^^^^^^^^ .. code-block:: json { "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 ^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json { "outcome": "potion in potions cookbook to make" } POTION-OBJECT ^^^^^^^^^^^^^ .. code-block:: json { "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 ^^^^^^^^^^^^^^^ .. code-block:: json { "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 ^^^^^^^^^^^^^ .. code-block:: json { "choice": "The choice", "answer": true/false } GIVE-ITEMS-OBJECT ^^^^^^^^^^^^^^^^^ .. code-block:: json { "itemReference": "item-register-api item id.", "title": "display name used.", "material": "Material to use from Spigot.", "lore": ["lore","for","item"] } QUEST-TASK-OBJECT ^^^^^^^^^^^^^^^^^ .. code-block:: json { "taskMetadata": [{TASK-METADATA}], "points": integer for points for above tasks. } TASK-METADATA ^^^^^^^^^^^^^ .. code-block:: json { "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 ^^^^^^^^^^^^^^^^^ .. code-block:: json { "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 ^^^^^^^^^^^^^^^^^^ .. code-block:: json { "worldGuardRegion": "region for the specific classroom", "locations": [{LOCATION-METADATA}], "target": "Target for this specific classroom specific task." } TARGET-QUEST-ITEMS ^^^^^^^^^^^^^^^^^^ .. code-block:: json { "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 }