SurvivalGamesMultiverse
Description
PERMISSIONS || COMMANDS || CHANGELOG || PLANNED
Suspended
The development of this plugin has been suspended/reduced to almost standstill, this is because I simply don't have any time for it. I will only release a new update if the plugin stops working completely, like a new minecraft version, or some other major change in Bukkit.
If someone wishes to take over the development of this plugin, feel free to PM me and we can discuss it if I find you competent enough.
Currently under heavy development
This plugin is currently being completely remade from the ground up. This should fix some of the problems this plugin has since it wasn't developed for public release from the start. It was only later that I modified it for release here.
I will link to the new page where you will be able to find the remake when it is ready for release. One thing to note is that most of the configs have changed to support a lot more configuration, this means that if you want to change to the remake, you will have to reconfigure the plugin.
Features
- Supports custom worlds.
- Fully automated, install and forget. Even updates itself.
- Simultaneous games in different worlds.
- Does not require WorldEdit to be able to work.
- Multi-language support, just edit the strings in language.yml.
- Randomized chests, loot-list can be configured in itemlist.yml.
- Logs and saves all wins, kills and deaths.
- Auto regenerates the worlds after each match.
- Backs up players inventories.
- Easteregg in the config.
- Worldspecific grace period.
- Worldspecific blockfilter.
Requirements
- No requirements, just install and play.
Conflicts
- No known conflicts.
Possible conflicts (not confirmed):
- Multiinv and similar plugins.
Important
This plugin utilises Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:
- A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- The plugin's version
- The server's version
- The OS version/name and architecture
- The core count for the CPU
- The number of players online
- The Metrics version
Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.
It also uses an auto-updater that automatically fetches the latest moderator approved version of this plugin and installs it if needed everytime the server is started. This can be disabled in the config for this plugin. Simply put "false" instead of "true" after "auto-updater" in the config.
Description
This plugin allows you to host multiple SurvivalGames in diffrent worlds at the same time.
Worlds
Each survivalgames-match takes place in its own world. Anything that happens in these worlds are logged and reset after each match. This means that you could do pretty much anything to the world and everything will be back to normal when a new round starts. This opens up for some interesting gameplay, like allowing all players to be able to craft their own armor or weapons, or build bridges, dig tunnels, create walls to hide behind etc.
Each match is timed, and after a configurable time all players in the match are teleported to a predefined arena to fight till the end. If the players just wont kill each other in the arena the plugin will kill all players left and start a new match if the time runs out.
Chests
All chests in the map gets randomized the first time a player opens them when a new game has started. You can edit what items are going to spawn in the chests and how often they will spawn in the _itemlist.yml_.
If a player crafts a chest in the game it will automatically be added to the log of chests to not randomize, this means that players can not craft a chest and it will be randomized when they open it. It will function just as a regular chest, and when the game resets the chest gets removed. Chests that already where placed in the world will not be added to the log of chests to not randomize, this means that all chests that where allready in the world gets randomized when a player first opens it.
Chests will only get randomized once every game. Opening and closing a gamechest (a chest that allready was in the world and not crafted by a player) will not randomize it again when opened.
Multithreaded I/O operations
Everytime the plugin needs to talk to the database or log something in a file it happens in a seperate thread. This will prevent server lag/freezes when the plugin needs to store some information, like kills, wins, deaths or positions.
Stats & MySQL
Kills, wins and deaths are logged for each player and displayed on the right side of their screen when they play.
This data can also be sent to an other MySQL-database so that it can be displayed on a webpage for example. Note, the plugin will never read anything from that MySQL-database, it will only send the stats to it when it gets updated.
The table in the MySQL-database has to have the following structure for it to work:
Column Name | Type | Primary Key | NotNull |
playernames | VARCHAR | YES | YES |
wins | INT | NO | NO |
kills | INT | NO | NO |
deaths | INT | NO | NO |
Multilanguage support
Every message/broadcast in the game (except error messages for commands or in the console) can be customized.
You can edit/translate the messages in language.yml.
This allows people from all nations to play the game in their native language without me having to do all the translations myself.
For example, the community im the head developer for is using this plugin in swedish. All they had to do was translate the strings in the language.yml file.
Setup
Installing the plugin.
Configuring the itemlist.yml.
Signs
Players join by rightclicking a sign. These signs can be placed anywhere.
To create "joinsign", write [sginfo] on the first line of the sign, and the name of the gameworld on the second line. Then just rightclick the sign to register it and it will update with the correct information.
Sourcecode
This plugin is open-source and released under the GNU-GPLv3 license. The code can be found here: GitHub/SurvivalGamesMultiverse
Each time i finish a game its either the chests dont auto fill or the whole map just resets all the chests and marking points
Get this error when trying to reset a glitched SG world 13:37:00] [Server thread/INFO]: [0;32;1mResetting world: kingslanding[m [13:37:00] [Server thread/WARN]: Unexpected exception while parsing console command "sgreset kingslanding" org.bukkit.command.CommandException: Unhandled exception executing command 'sgreset' in plugin SurvivalGamesMultiverse v1.4.11 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchServerCommand(CraftServer.java:529) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.aw(DedicatedServer.java:286) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:251) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] Caused by: java.lang.NullPointerException at org.bukkit.craftbukkit.v1_7_R1.block.CraftSign.<init>(CraftSign.java:17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at org.bukkit.craftbukkit.v1_7_R1.block.CraftBlock.getState(CraftBlock.java:252) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at se.lucasarnstrom.survivalgamesmultiverse.misc.LoggedBlock.reset(LoggedBlock.java:76) [?:?] at se.lucasarnstrom.survivalgamesmultiverse.misc.GameWorld.resetWorld(GameWorld.java:168) [?:?] at se.lucasarnstrom.survivalgamesmultiverse.managers.WorldManager.resetWorld(WorldManager.java:106) [?:?] at se.lucasarnstrom.survivalgamesmultiverse.Main.resetWorld(Main.java:263) [?:?] at se.lucasarnstrom.survivalgamesmultiverse.Commands.sgreset(Commands.java:265) [?:?] at se.lucasarnstrom.survivalgamesmultiverse.Commands.onCommand(Commands.java:78) [?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] ... 8 more
I keep getting this error. It breaks my SG world and it cannot be reset. The whole server needs to restart to fix it.
13:19:03] [Server thread/ERROR]: Could not pass event PlayerDeathEvent to SurvivalGamesMultiverse v1.4.11 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:345) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.EntityPlayer.die(EntityPlayer.java:368) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.EntityLiving.damageEntity(EntityLiving.java:732) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.EntityHuman.damageEntity(EntityHuman.java:746) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.EntityPlayer.damageEntity(EntityPlayer.java:446) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.EntityHuman.attack(EntityHuman.java:918) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:1092) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.PacketPlayInUseEntity.a(SourceFile:55) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.PacketPlayInUseEntity.handle(SourceFile:10) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) [?:1.7.0_45] at java.util.ArrayList.get(Unknown Source) [?:1.7.0_45] at se.lucasarnstrom.lucasutils.Serialize.stringToItemstack(Serialize.java:219) [?:?] at se.lucasarnstrom.lucasutils.Serialize.stringToInventory(Serialize.java:122) [?:?] at se.lucasarnstrom.survivalgamesmultiverse.managers.PlayerManager.restoreInventory(PlayerManager.java:168) [?:?] at se.lucasarnstrom.survivalgamesmultiverse.Main.gameover(Main.java:250) [?:?] at se.lucasarnstrom.survivalgamesmultiverse.listeners.Players.onPlayerDeath(Players.java:330) [?:?] at sun.reflect.GeneratedMethodAccessor312.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_45] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.7.0_45] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:318) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-3-g530fcb7-b2979jnks] ... 19 more
I can't even use the command /sg help
deathmatch?
@FrozunLightning
Cool, the same happened to the original SurvivalGames, and my MmySQL crashed... And The same killing thing happened to me.. Wow, I think I'd need to reset the lobbyspawns, or the whole plugin then ._.
This is a great pluggin. I've gotten everything to work out, and with this pluggin in the most difficult part of setting up the worlds is actually making the new worlds. The only problem I've experienced has been when a player on my server wins a game, they are not teleported to the lobby world, so they have to kill themselves in the arena to go back.
@Brangspears
It's SurvivalGames, what do you think? >.>
@Ginn4364
Use MultiverseInventories. I'm so glad they made it tho.
@p1ckl3d
It does work..
The ignore clear inventory permission doesn't work! Could you fix this please?
If I have 2 arenas in 1 world can still use both arenas or just 1 for that world?
Hey so I have a problem. First off let me say that this plugin is amazing and I love it! But whenever the game ends the winner has all of the stuff from the game left in their inventory in the regular world. Is their a option in the config or can I add some code to it to fix this?
Hey, I really like this plugin, and it's working well, except for one thing:
When I set all arena locations and all main locations, and save them with /sglocation save main/arena, they will be saved, but when I restart the server, all locations are lost.
And maybe you could remove the "You cannot move yet" message when the game has not started yet, because it spams your chat. Another suggestion: try to disable the food bar, and make sure everyone has full health before the game starts.
Hey can you make plugins for my server email me at [email protected]
@Brangspears
yes
This plugin have deathmatch?
@minetard
It is probably your config that is not correctly formatted, make sure there are no tabs in it, only spaces.
@LucasEmanuel
i added two world the first one is working perfectly but the second one keeps showing this error "This world is not registered" when i type /sglocation set main, the config file is correct,world name is correct,the sign shows the correct name of the world but cant add spawnpoints,excuse my bad english
Version 1.4.11 of my plugin is now available in the files section for download. It adds support for minecraft 1.7.2 :)