Exams
Exams in Minecraft!
This plugin lets server owner setup pre-defined exams which players can take to obtain certain ranks (permission groups) on the server OR execute a certain command for the player if he passes the exam.
Exams is a simple, lightwight and automated way to handle certain ranks on the server, such as :
- Citizen (Player need to read and understand the rules before he can build on the server)
- Wizard (Player need to know how he actually use the wizard spells before he can be a wizard)
- Police (Player need to know under what conditions he should jail players)
From my own experience, using this plugin is a very efficient way to guarantee quality players on your server when players need to pass an exam to be able to build on the server.
By editing the exams.yml file, a server admins can define any type of exam for any rank they like.
Exams are taken by clicking on signs in the world to encourage people to build schools in the game world where players can go to take exams.
Exam questions
Setting up an exam is easy:
- Place a sign with the words "Exam" on line 1, and the name of the exam (from the exam.yml file) on line 3.
- Players can now signup and take the exam by right-clicking on the exam sign
Being a Student
- During the exam, the player will be put in the "Student" permission group.
- If the player fails his exam he will be reverted back to the permission group he had before starting the exam
Installation
Put the Exams.jar file in your /plugins folder and you are ready to go!
Defining your exams
Just edit the exams.yml that appears in the Exams folder. The layout should be simple to understand:
Citizen: RankName: Citizen Command: give $PlayerName 38 1 StartTime: 600 EndTime: 13000 Price: 100 NumberOfQuestions: 2 Questions: Is it ok to grief on the server?: Options: - Yes - No - I will grief like theres no tomorrow! - Maybe CorrectOption: B Questions: What is NOT a way to obtain items?: Options: - Asking an admin for it - Crafting them - Buying them - Asking other players for them CorrectOption: A Questions: How do I obtain a higher rank?: Options: - By yelling and screaming about it - By convincing an admin - By taking the exam for that rank - No idea CorrectOption: C
This exam puts him in the "Citizen" group (RankName) and hands him a rose (38).
Notice that the exam above will select 2 questions (NumberOfQuestions) at random out of all available 3 questions for the exam.
In this way, the exam will never be exactly the same and players will not be able to simply record the sequence of the answers.
This exam has both the "RankName" and "Command" settings.
Either of these are optional: You can setup up an exam that only performs a command or only puts the player in a group or both.
Optional: Required Exams
An exam can be setup to require passing another exam first.
You can set another exam as being required for taking this exam, by specifying the RequiredExam value.
Citizen: RankName: MasterCitizen RequiredExam: Citizen Command: give $PlayerName 38 200 StartTime: 600 EndTime: 13000 Price: 10000 NumberOfQuestions: 64 Questions: Is it ok to grief on the server?: Options: - Yes - No - I will grief like theres no tomorrow! - Maybe CorrectOption: B
Optional: Payment
You can set the required payment for taking an exam by specifying the Price value.
NOTE: You need Vault installed on the server to use payment.
Optional: RankName
You can set the permission group that the player will be put in if the player passes the exam, by specifying the RankName value.
Optional: Command
You can set the command that the plugin will execute if the player passes the exam, by specifying the Command value.
Optional: Multiple Commands
You can set a list of command that the plugin will execute if the player passes the exam, by specifying the Commands value.
Citizen: RankName: Citizen Commands: - give $PlayerName 38 1 - tppos $PlayerName 128 65 128 StartTime: 600 ...
Optional: Required rank
You can set another rank (permission group) as being required for taking this exam, by specifying the RequiredRank value.
Optional: Opening Hours
You can set the opening hours for each exam by specifying the StartTime and EndTime values. Note that these values are in minecraft time.
Commands
Command | Description |
---|---|
exams | Show the basic info |
exams help | Shows the command list |
exams a | Answer A to an exam |
exams b | Answer B to an exam |
exams c | Answer C to an exam |
exams d | Answer D to an exam |
Permission Nodes
Note that Exams currently supports PermissionsBukkit, PermissionsEX, bPermissions and GroupManager.
- exams.* - Player can do everything below
- exams.updates - Player gets notifications about updates to the Exams plugin
- exams.reload - Player can reload the Exams configuration file
Configuration
Setting | Description | Default Value |
---|---|---|
ServerName | Default name for the server. | 'Your Server' |
MinExamTime | Minutes that must pass before a player can take an exam again | 60 |
Required score | Required percentage of correct answers that a player must have to pass an exam | 80 |
Debug | Enable debugging information | false |
DisplayUpdateNotifications | Show notifications about updates to the Exams plugin. | true |
Want to contribute? Exams is open source!
Check out the official repository on github
Is this working in 1.7.9? Does it require UUIDs to work?
Just a few quick questions:
- As a command you've show how to give a specific player a rose using give $PlayerName etc but is it possible to give a player an item like a paper or a writtenbook with the playername, examname and examscore in the lore?
- Could you add in seperate required scores for each exam?
- Is it possible to list more than one command for the command option and the same for the requiredexam?
This doesn't work on 1.7.5 ?
please update this is like 50% of my server :) thank you for the great plugin :)
does this allow multiple commands to run on passing an exam?
can this disable the chat during an exam and reenable it after pass/fail?
i would love a way to do this without signs
project abandoned?
Have an update out for 1.7.5 yet? ;)
run on spigot1.6.4 #1138 and got this problem when i clicked the sign the second time. Could not pass event PlayerInteractEvent to Exams v0.2.4 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:47) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:207) at net.minecraft.server.v1_6_R3.PlayerInteractManager.interact(PlayerInteractManager.java:374) at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:631) at net.minecraft.server.v1_6_R3.Packet15Place.handle(SourceFile:58) at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:230) at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:117) at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37) at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:132) at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:594) at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:240) at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:483) at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:415) at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583) Caused by: java.lang.NullPointerException at com.dogonfire.exams.ExamManager.generateExam(ExamManager.java:444) at com.dogonfire.exams.BlockListener.OnPlayerInteract(BlockListener.java:128) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 17 more
@Marium0505
There are no permissions related to exam answers.
I think disabling the chat during an exam is a very bad idea, because it totally prevents the player taking the exam from getting any kind of help with how to do his exam ("How do i answer??") and also forces him into a state where he can get no help on how to get out of an exam that he no longer wants to take ("What? How do i abort this??")
Why is there permissions for the answers? And does that mean you have to use 4 and/or less answers?
Can you make it so chat is tempory disabled while a player is doing a quiz? And then change how to do the answers to just "[#]" in the chat as a chat message where the [#] is the letter for the answer.
Example (output):
Question 1; How are you today? A: Very Bad B: Bad C: Alright D: Good E: Very good (To answer, simply type the letter for your answer in the chat as a normal chat message.)
That would be much better.
Doesn't seem like this works... I edited the exams.yml with the existing ones in there, did /exams reload, and made the sign and it didnt work.
Can you add some color to the signs, in black there harder to see and a bit boring
something like &6[&aExam&6] &c
thanks :D
I was thinking about adding feature : When players reach a level they got the permission to pass exam ? and they are notified about it ?
@felixlechat62
The latest version 0.2.4 is compatible with 1.7.2
@axzxc1236
@Deninoma
Yes, I will make the all text available to translation in the upcoming version :)
i a problem with a plugin in 1.7.2. i write a error in ticket maybe a version is not compatible ?
How Do I Make Other JOBS And Can I Translate It To DANISH
Please add it so we can have it from a-z so we can have muplite answers
Just what i need many thanks!
@axzxc1236
其实我已经翻译在自己的服务器上用了,不过不怎么会英文,所以用谷歌翻译加上自己的理解来更改的。
Hello,could you add custom message function?
Please,I want to translate it to Chinese on my server.
Not just questions,includes"You started in ......".