[♜] CLASSROOMS LITE ➤ Menu | Intuitive | Roleplay | Beta 0.6.1

Make classes and teach your players. Perfectly suited for roleplay servers!

  1. SaMaGamers
    Native Minecraft Version:
    1.15
    Tested Minecraft Versions:
    • 1.13
    • 1.14
    • 1.15
    Contributors:
    Mwexim
    Languages Supported:
    All languages
    WARNING
    This plugin is a demo version. You can check out the plugin's features by testing with this plugin. The features are highly limited though.
    If you want to check out the full resource, go here.
    This plugin won't receive any support or updates.

    [​IMG]
    [​IMG]
    Classrooms is a widely extended classroom plugin perfectly suited for RPG servers. You can manage different classrooms and create lessons where students can participate in. The students have to hand in an essay, which the teacher can grade at the end of the lesson. Based on your grade you get different rewards, all configurable.
    The plugin supports a highly intuitive menu, so that room creation and management is really easy. You don't need to split it through numerous commands like other plugins tend to do!
    Other than that, the plugin supports some cool side-features like sitting on a chair, announcing classes, a waiting area before classes begin, giving items to all the students, stop/allow talking, raising hand system and so much more!
    The plugin also has Magic integration to perfectly suit magic-themed servers (like Harry Potter). It allows you to stop/allow the casting of spells.
    This resource is supported for 1.13.X to 1.15.X.
    (!) 1.12.X and lower is NOT supported (!)

    Do you want to see the plugin in action? Contact me and I will open a temporary server!

    [​IMG]
    ✪ Customize your rooms ✪
    You can create as many rooms as you like, each with its own subject and features. Each room has its own name and spawn point where the players will be teleported to. The rooms are highly editable in a handy menu and the plugin will make sure no things will overlap each other or cause bugs, for example by preventing certain actions when a lesson is active.

    ✪ Roleplay aspects ✪
    There is an option, specific for each room, to obligate walking to a class. Instead of players teleporting instantly after joining, they have to walk to the class. When they are near the spawn point of the class, they will be attending it. This feature also works for teachers and ensures a real experience. All of this is optional of course.
    The plugin also ensures the player is on the same floor as the room. This means when you set the radius for joining the room to 5, players beneath the room spawn point will not be able to join.

    ✪ Conditions for teachers ✪​
    The plugin gives you the option to enable specific conditions for the teacher. This means for example that teachers need to give a lesson for a specific time before they can end it.

    Teachers
    The teachers have very wide options for giving lessons. Every aspect of teaching is present and this makes sure your teachers have a pleasant experience as well. Managing classes was never this easy! All of the options are listed below.

    ✪ Announcements ✪​
    Teachers can announce lessons by broadcasting it to the server. This makes sure your players know there will be a lesson starting soon. If a teacher is AFK, another teacher can easily take over the class while it already started. This makes sure lessons won't stop mid-class.

    ✪ Essay system & Items ✪​
    Using the built-in /handin command, players can hand in items for the teachers. This allows teachers to give essays to the players which he, later on, can grade. There's an option to only allow books to be handed in. If the player hands in an illegal item, it will be prevented. The teachers will be notified when someone has handed in his essay and can view all of them in a user-friendly overview menu.
    The teacher can give items to players in the class. For example if you want players to write an essay, you could give them a writable book to write in, which they, later on, can hand in.

    ✪ Grading System ✪​
    Commands will be executed based on the grade you got. The teacher will be able to grade any student in his class on a basis from 0 to 10. The maximum score is configurable, but note that only positive integers are allowed.
    If the player scored well, you can execute grade-specific commands and if you have Vault enabled, you can give them money as well.
    There is an option to give the teacher some rewards as well, for their tutoring.

    ✪ Silence system ✪​
    There are two ways to manage silence in a class, so it won't get spammed with answers.
    The first one is to completely silence the whole class or allow everyone to speak at once. This is especially handy when you want to great the class and want them to be able to greet back all at the same time. This feature is togglable in the menus.
    The second option is to let one person speak at a time. First, you allow everyone to raise their hands, using /raisehand or /rh. Then, after you disabled this, you can choose from a menu which player will be able to speak, for example after you asked a question. You can choose this player from all players who raised their hand. Then, the chosen player can write one message to the teacher. After that, this process can be repeated.
    Spam is reduced by only allowing raising your hand one time, but this can be disabled of course.

    Other features
    Sitting on chairs is automatically included in the plugin, so no external plugin is needed. This is only enabled in class, so if you want to enabled it everywhere on the server, you will need an external plugin for this and you will need to disabled this feature.
    Command blocking only certain commands are allowed in class. Admins override this obligation by default.
    Custom chat format can be enabled to organise the chat a bit more. The teachers will get a prefix to stand out from the rest.
    Menu syncing is a handy feature that ensures no bugs caused bu the menus. When someone changes something by clicking something in the menus, everyone that has a menu opened at that moment will receive that changes and their menu will adapt to it.
    Automatic update checker. This feature only works for people that bought this plugin on Spigot. The plugin will let you know when your version is outdated. Since the plugin versions are synced on both platforms, this will also have utility for people that bought this outside of Spigot.

    Everything is configurable
    Everything, yes literally everything, is configurable.
    You can change all the messages to your language, change the colours of the messages if you don't like them or use certain placeholders in messages. If you have PlaceholderAPI installed, you can use all of the installed placeholders in probably around 90% of the messages.
    Every feature listed before and after this has some way to enabled or disable it. Some extended feature also supports some custom parameters to customize even more.
    The player menus are all configurable and all the items can be changed accordingly.

    ✪ Lovely menus ✪
    Every sort of configuration comes with a handy menu. This ensures a player-friendly and professional experience for players. Sick of all those plugins that require endless setups with commands? This plugin offers every setup done with menus, from creating and managing rooms to giving lessons.
    Teachers will have their own menu where they can handle the lessons. This includes, but is certainly not limited to: starting and ending lessons, silencing the class, grading players, kicking players, managing essays and more.

    Choosing players and the overview of all the essays is also done through menus. Your staff and players will only have to learn a handful of commands to manage this whole plugin.

    ✪ Integrations ✪
    This plugin offers a handful of handy integrations that empower the possibility to customize this plugin to your likings even more. All of the following dependencies are not required, only optional.
    Vault integration: this adds the possibility, as mentioned before, to give money to players based on the grade they got.
    The PlaceholderAPI integration makes sure you can use every placeholder installed in almost every message (I'd say around 90%). This makes you able to configure the chat format for example or do other cool things. The plugin also has some own custom placeholders for you to use.
    Magic integration: this is certainly the most special one. Since many Harry Potter and other spell-based servers use classes, I implemented a system for Magic. It basically adds the option to allow or disallow spell casting (like silencing players). It also adds an option in the config for certain spells that can never be cast in class, forbidden spells (like Avada Kedavra).

    ✪ YAML Editing ✪
    The plugin stores many things in YAML files (only the necessary ones). There are files for player data, where all the important data from every player is stored (the classes attended and the total score). Secondly, you have the config files, where you can customize critical features like the prefix, menus, grading rewards and more. Then you have a language file, where you can edit almost every message and lastly, you have the room file where all the room properties are stored.

    ✪ Latest versions ✪
    You can use every version between 1.13.X and 1.15.X. Using a lower version will sadly not work. The plugin will always support new versions as quickly as possible.

    [​IMG]
    Here you can find some pictures and GIFs to get an idea of how the plugin looks. Take in mind: you can always ask me to see the plugin in action if you want to! Everything is configurable, even the menu items, so you can change the look of the menu completely.
    Video coming soon.
    Images coming soon.
    - /class help - player, teacher and admin - get a help page with all available commands listed
    - /class reload - admin - reload all configs and player data
    - /class leave - player, teacher and admin - leave your current lesson. Note: if you are teaching a lesson, this will not stop it!
    - /class stats <player> - player, teacher (and admin for player argument) - get your statistics or the statistics of the player argument
    - /class forcejoin <player> - teacher - let a player join the lesson, even after it started. The player itself has NO control over this, so even if he/she didn't ask to join the lesson, he/she can still be added (they can leave afterwards though). If the player already is following/teaching a lesson, this will be cancelled of course.
    - /rooms - teacher and admin - manage the main spawn and create rooms (admin) and start lessons in specific rooms (teachers)
    - /lessons - player - opens a menu with all available lessons. Players can also leave their current lesson from here
    - /raisehand or /rh - player - raise your hand to get elected by the teacher to answer a question. Note: you can only raise your hand when the teacher allows you so
    - /handin - player - hand in the item you are currently holding
    - There are 3 permission levels: PLAYER, TEACHER and ADMIN. If you give a group in a permission plugin the ADMIN permission, you should also give them the lower permissions (PLAYER and TEACHER).
    - These permissions are not displayed here since they are configurable in the config (link below).
    These are the files you can edit. Click the links to be redirected to their respective files on Github.
    - config.yml
    - grades.yml
    - language.yml
    - menu.yml
    - %classroom_player_average% - Average score in % of the player
    - %classroom_player_classesattended% - Amount of classes the player attended
    - %classroom_player_room% - The name of the room the player is following a lesson in (if none, defaults to "None")
    - %classroom_player_teacher% - The name of the teacher the player is getting a lesson from (if none, defaults to "Nobody")
    - %classroom_totalrooms% -The total amount of rooms (disabled and enabled) in the server.

    [​IMG]
    1. Download this resource and optionally the soft-dependencies.
    2. Put these files in the plugin folder of your server.
    3. Restart your server.
    4. From now on, you can reload the plugin by doing /class reload.
    1. Go to the place you want your main spawn point to be.
    2. Execute /rooms. It will open a menu.
    3. Everything will be locked except for one item. Click it to set the main spawn point.
    4. Then, a red rose will pop up saying 'Create room'. Click it to start the creation process.
    5. Now, go to the place where you want your room spawn point to be. This should preferably be at the door of your room, not in the middle of it.
    6. Lastly, type the name of your room, for example: 'Math', and press enter. It will create the room on your current location.
    7. Now when you open /rooms again, you can manage any rooms by clicking on the icon with the correct name. If you want to create another room, repeat the process from step 4.
    1. Execute /rooms. Click on your room. The room panel will show up.
    2. Then, click on the item at the bottom that says 'Teacher Panel'. This brings you in a new panel.
    3. Now, click on the enchanted book to begin the class. If it's not available, read the text: it will tell you why you can't start this lesson.
    4. Now, preferably, broadcast in some way to your players that a new lesson is about to begin. In this case, players can join the lesson and start attending it.
    5. When all players joined, click 'Start lesson'. Only click this when everyone joined. After this, no one can join anymore.
      • If you still need a player to join your lesson after it already started, use /class forcejoin <player>.
    6. Now, you can give your lesson and grade all players. When you're done, click 'End lesson'. Note: this will bring all remaining players and you to the main spawn. All players remaining will be left ungraded and will receive no rewards
    [​IMG]
    Here you can find some useful methods for your own plugins to interact with the Classroom plugin. This is for Java developers only and you will need this plugin to make it work.
    Code (Text):

    import me.mwex.classroom.api.ClassroomAPI
    import me.mwex.classroom.Classroom
    // Then you can use this code
    ClassroomAPI api = Classroom.api();
    PlayerData data = api.getPlayer(myPlayer);
    int percentage = data.getAverageScore() * 100; // Average score is always between 0 and 1
    if (api.playerIsFollowingLesson(myPlayer)) {
        myPlayer.sendMessage("Are you enjoying the lesson?");
    }
     
    Of course, these are not all methods. I'd advise you to just import the API class and start from there. Everything is very well documented and your IDE will probably show you all the available methods.
    Events:
    - ClassroomStartEvent - Note: this gets triggered when the teacher opens the lesson for players to join.
    - ClassroomBeginTeachingEvent - Note: this gets triggered when the teacher starts the lesson. Players now can't join anymore.
    - ClassroomEndEvent
    - ClassroomToggleUseStateEvent
    - PlayerGradeEvent
    - PlayerJoinRoomEvent
    - PlayerLeaveRoomEvent
    I am planning to extend this API with some more methods.

    [​IMG]
    These are some questions players could be worried about. I made this section to avoid misunderstandings.
    Will this resource decrease my server performance?
    No. This plugin is lag-free and will not slow down your server. The plugin is made with performance in mind.
    We only recommend minimum storage of 512 MB on your server, since that's the rate we tested this plugin. Normally every server should have this.
    If I edit any file, it will not change ingame!
    Remember to always execute /class reload after each change. If you don't execute that command, the changes will not be made.
    There is no need to restart or reload the server since that will stop all ongoing classes. Just execute that command.
    The messages are not showing properly!
    Check if you used the right YAML syntax.
    Maybe you have to change this:
    Code (Text):
    NoTierRewards: &cNo rewards for you, I'm sorry!
    with this:
    Code (Text):
    NoTierRewards: '&cNo rewards for you, I''m sorry!'
    If your messages start with a colour code (like '&a' or '&4'), you have to quote the whole text (with single quotes: ' '). If a quoted message contains another single quote, you have to escape that quote or you have to double it (escape with a backslash: \).
    I got some errors in the plugin! What do I have to do?
    The plugin always gets extensively tested by me, but if you still would find any error, please let me know. Lifetime support is included in this plugin and it'd be a shame to not use it!
    Please use any of the ways listed below.
    [​IMG]
    If you have any suggestions, don't hesitate to suggest them, but please do not leave a bad review with suggestions. I will not handle these reviews.
    • A minimum and maximum amount of players in a lesson
    • Let players join after the lesson already started
    • Placeholders
    • Sounds and particles
    • Broom support
    • Comments in YAML files
    • Change someone stats
    • Tab completion
    • More inventory customization
    • More interactable messages
    • Party support
    • Wiki
    Coming later:
    • Exams and large tests
    • Schedule to plan lessons
    You can always suggest new features!
    [​IMG]
    This plugin does not depend on any other plugin. All dependencies listed below are soft-dependencies!
    • Vault
    • PlaceholderAPI
    • Magic (by LukasWolf)
    All of these plugins should be known by all server administrators and are easy to find.
    [​IMG]
    Please follow these rules to ensure that we both will have a profit of this resource.
    • When buying this product, you agree to all of these terms.
    • You cannot claim this as your own.
    • You cannot distribute, leak, sell or give this product to other persons in any way.
      • Only one copy per server/person
    • Leaving a bad review with a bug without contacting us first can lead to a temporary or a full restriction on this resource.
    • You cannot chargeback. This is completely not tolerated!
      • If you do, a scam report will immediately open against you and you will not be able to download this resource ever again!
    • We can change these terms at any moment, with or without a warning.
    • Violating these terms can lead to a negative reputation, a temporary or full restriction to download this resource, a scam report or something else.
    [​IMG]
    If you need support, you can contact me in different ways. It may last some days before I answer. Normally I answer within 6-48 hours. I'm the most active on MC-Market.
    I appreciate all reviews, but I do ask that you keep them to the point of how this plugin operates. DO NOT use reviews to report bugs or ask for new features to be added. I will just ignore these reviews.
    Giving a 1-star review because your plugin does not work IS NOT APPRECIATED and WILL NOT RECEIVE ANY HELP.

Recent Reviews

  1. gaspare20
    gaspare20
    5/5,
    Version: 0.4
    Amazing plugin! It's exactly what i was looking for. It offers a lot of features and the developer is always willing to help you. Keep up the good work!
    1. SaMaGamers
      Author's Response
      Thank you for your kind review. Person helped me a lot with finding bugs and was always patient to wait for me to fix them.
  2. sebbi..alsvik
    sebbi..alsvik
    5/5,
    Version: 0.2
    exellent
    ............
    Please add more fetures for the teathcer! .
    1. SaMaGamers
      Author's Response
      Thanks for the review!

      Currently I am fixing bugs and adding necessary features. If you have anything that the teacher needs, you can alwqys request it on my Discord server.