Plugin Request Shift - PvP Minigame

Discussion in 'Plugin Help/Development/Requests' started by Xanderpitz, Apr 25, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    Xanderpitz

    Hello,

    I've been trying to get a developer to code this for a while now, so I figured I'd turn to here.

    Category: Minigame

    Suggested Name: Scroll down to the bullet points!

    What I want: PvP gamemode with up to 12 players.
    *NOTE* You may opt to do any 1 of the following plugins or all of them if you'd like. I've tried to include all things that have an effect on each other into 1 plugin so that everything can work separately and none should interfere with each other!
    *NOTE* Anything in GREEN is already being worked on, so you'd have to pick something else!
    *NOTE* Anything in BLUE is completed!
    • ShiftSpawn Plugin - An ability to recognize the order in which players join the server and set spawnpoints for them when the game begins. For example, if Bob joins first followed by Mary, Bob should be sent to spawnpoint #1 and Mary to #2 when the game actually begins. This also requires a way to define spawnpoints. All players (re)spawn with a wood pick and wood sword. Also, touching the void is instant death, not slow damage after hitting y=-64. Clicking respawn (no matter how you died) teleports you back to your spawn point on your island with your wood pick and sword.
    • ShiftPath Plugin - 2x2, 3x3, & 4x4 Quartz Block platforms (http://gyazo.com/2ecdaf37cd1c2ca7de4e42df969f87c7) that shift around once in a path i can set manually. 2x2 platforms should move every 20 ticks. 3x3 move every 15, and 4x4 move every 10 ticks. I'm not sure what is the most efficient method, but my guess is that I should be able to select 2 locations and define their contents as a platform. Then, I can define the path it follows somehow.
    • ShiftKillItem Plugin - Gaining kills awards different items sent directly into your inventory. Each kill is cumulative and your count does not reset upon death (it's a kill COUNT not a kill STREAK). I should be able to set what item you get and at how many kills. Items should probably use default Minecraft coding similar to how /give works. Additionally, you gain a random weapon or armor piece from an enemy‚Äôs inventory sent directly to yours.
    • ShiftEnchant Plugin - Hold an axe, pick, sword or bow in your hand and type /ench to open up a GUI with a list of enchantment books for that tool/weapon. Each one costs a certain amount of gold ingots that I can set manually. Also, Axes should deal set amounts of damage to armor, depending on the type: Wood - 1, Stone - 2, Gold - 2, Iron - 4, Diamond - 8. List of appropriate enchantments is in the commands section.
    • ShiftDrops Plugin - Any items that fall into the void are teleported either to the block they fell from or to the nearest block. If it's not terribly hard to do it from the first option, I'd prefer that one.
    • ShiftOre Plugin - All ores should turn into bedrock upon being mined, then "regenerate" back after 10 seconds. Also, Gold and Iron ore should yield ingots instead of ore. XP earned from mining all ores should be disabled. The ShiftEnchant plugin will be used instead of enchantment tables.
    • ShiftScore Plugin - SUBSTITUTED FOR FEATHERBOARD PLUGIN
    Ideas for commands (if a plugin isn't listed here, it has none):
    Spawn Points
    /shiftspawn #
    The # is obviously a spawnpoint # between 1 & 12.

    Platform paths

    /shiftpath {name} {size}
    Size of platform - options are 2, 3, or 4
    I have no idea what would be the most optimal way to set the path. My guess is either use a tool to mark each block or a command to do it where you stand, but either way the next one you mark would be the next place it tp's to. Feel free to suggest a command and variables associated with it.

    Items from Kills
    /shiftkillitem {killcount #} {item metadata} - Should work similarly to how /give works including lore, names, and enchantments

    Enchantments
    /shiftenchant {enchantment} {cost} - This sets the value in gold of the enchantment in the GUI. All enchantments available in the GUI are listed below.
    /ench - Type this while holding an axe, pick, bow or sword in your hand to open up a GUI with enchantment books in it. Depending on the item in your hand, it opens up a GUI with ONLY enchantments for that type of tool/weapon:
    Pickaxe - Unbreaking 1-3, Efficiency 1-5, Fortune 1-3
    Axe - Unbreaking 1-3, Efficiency 1-5, Sharpness 1-5
    Sword - Unbreaking 1-3, Sharpness 1-5, Fire Aspect 1-2, Knockback 1-2
    Bow - Unbreaking 1-3, Power 1-5, Flame 1-2, Punch 1-2

    Ideas for permissions (if a plugin isn't listed here, it has none):
    shiftspawn.* - Ability to set spawnpoints
    shiftpath.* - Ability to set platform paths
    shiftkillitem.* - Ability to set killcount items
    shiftenchant.* - Ability to use /shiftenchant command to set enchant costs

    When I'd like it by: I'm not in a huge rush, but probably 2-3 weeks or so would be nice.

    Thanks! :)
     
    Last edited: May 9, 2015
  2. Offline

    pie_flavor

    @Xanderpitz This looks cool! I would totally play this if I knew of a server.
     
  3. Offline

    Xanderpitz

    Thanks! It's part of my server's motto to always provide unique, custom games like this, and put new twists on the old classics.
     
  4. Offline

    pie_flavor

    @Xanderpitz 'your server'? If you've got original games like this on an already existing server then I'd love the ip!
     
  5. Offline

    Xanderpitz

    I've updated the OP to make it much easier for people to take on smaller portions of the project! Each bullet point represents a separate plugin that can be worked on by itself. Be sure to read the commands & permissions associated with each plugin as they are separate from other and you should only include the command & permission associated with the plugin you choose to work on!
     
  6. Offline

    travja

    I like the idea :) Not too complicated either. I might be able to take this on, or parts of it, when I've got a little more time on my hands. Are you intending to make this an exclusive minigame for your server?

    And a note for developers possibly working on this project. If you start a piece of the big thing, make sure to include an API so others can use your functions!
     
  7. Offline

    Xanderpitz

    Yes, this will be one of our main gamemodes on my server. Depending on how it performs, it might be transferred to a network arcade with other less-successful games. However, I have high hopes for it :).
     
  8. Offline

    ShadowTrain

    Xander I wan't to code the plugin for you but I need to know the version you want for the plugin to work?
     
    Last edited: Apr 27, 2015
  9. Offline

    Xanderpitz

    It runs on a Spigot 1.8.3 server.
     
  10. Online

    timtower Moderator Moderator

    Moved to Bukkit alternatives
     
  11. Offline

    ShadowTrain

    Ok Imma work on it ASAP.I'm currently working on a crate plugin when I'm done I'll make the plugin.
     
  12. Offline

    Xanderpitz

    Just for reference, which of the 4 plugins do you plan on doing, or are you doing all 4?
     
  13. Offline

    ShadowTrain

    ShiftSpawn Plugin and ShiftKillItem plugin is it fine if I do those 2?
     
  14. Offline

    Xanderpitz

    Heck man you volunteered to help, do whatever you want. Just make sure I know which ones I can still delegate to other people! Thanks a lot!

    Also, I'm editing the first post to include another plugin I forgot to add
     
  15. Offline

    Xanderpitz

    Bump! Still 4 more plugins left to be coded!
     
  16. Offline

    pie_flavor

    @Xanderpitz ShiftOre.jar
    Fully tested. I'm glad I can help make such a great minigame possible. I feel like more people should split their games up into plugins.
    Going to attempt ShiftScore now.
    Edit: I don't know whether this will work, no way to test it. But ta daa! ShiftScore.jar
     
    Last edited: Apr 29, 2015
  17. Offline

    Xanderpitz

    Thank you so much! ShiftOre works perfectly, but the ingots tend to fly really far from the source block. Do you think you can have it send the item directly to your inventory instead of dropping on the ground?

    ShiftScore gave me an error. The console is read from bottom up for some reason. I literally created a brand new server on my hosting company and slapped these 2 plugins in, so no other plugins interfere lol.
    Show Spoiler

    30.04 00:27:34 [Multicraft] Skipped 112 lines due to rate limit (30/s)
    30.04 00:27:33 [Server] INFO at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at java.net.URLClassLoader.access$100(URLClassLoader.java:71) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at java.lang.ClassLoader.defineClass(ClassLoader.java:800) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.7.0_75]
    30.04 00:27:33 [Server] INFO Caused by: java.lang.UnsupportedClassVersionError: code/ShiftScore : Unsupported major.minor version 52.0
    30.04 00:27:33 [Server] INFO at java.lang.Thread.run(Thread.java:745) [?:1.7.0_75]
    30.04 00:27:33 [Server] INFO at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:522) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 00:27:33 [Server] INFO at net.minecraft.server.v1_8_R2.DedicatedServer.init(DedicatedServer.java:199) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 00:27:33 [Server] INFO at org.bukkit.craftbukkit.v1_8_R2.CraftServer.loadPlugins(CraftServer.java:291) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 00:27:33 [Server] INFO at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 00:27:33 [Server] INFO at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 00:27:33 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 00:27:33 [Server] INFO org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: code/ShiftScore : Unsupported major.minor version 52.0
    30.04 00:27:33 [Server] ERROR Could not load 'plugins/ShiftScore.jar' in folder 'plugins'
     
  18. Online

    timtower Moderator Moderator

    @Xanderpitz The console is backwards ( and shorter ) due to multicraft.
    @pie_flavor Server is running java 7, you probably want to compile with that instead of java 8 ;)
     
  19. Offline

    Xanderpitz

    Thanks! That was fast lol
     
  20. Offline

    pie_flavor

    @Xanderpitz I'll add those tomorrow, gotta go to bed. Reason they fly so far is because the block that they are in gets changed to bedrock :3
    Also you should green out your OP
    Also: If I do this, with the ores, I cannot guarantee the working of the Fortune enchantment.

    @Xanderpitz I have fixed the other plugin, re-download it for a fix. Sending the item to the player's inventory will mean forfeiting the functionality of Fortune. Is this okay by you?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 12, 2016
  21. Offline

    Xanderpitz

    Ya I can work around that. Thanks! I'll test it and let you know the result
     
  22. Offline

    pie_flavor

    @Xanderpitz So do you want me to implement it or no?
    And if you don't, may I ask why bedrock? Just leaving it as air and later replacing it would look better and act better.
     
  23. Offline

    Xanderpitz

    You can implement it as long as you're SURE you can't get fortune. Fortune would be part of the ShiftEnchant plugin, so I need to know for the sake of the person coding that one.

    As for the bedrock, I'd rather not have the air pockets there and have people fall into them. The only blocks that can be mined in the game will be ores and wood, and the entire map is floating islands like a skywars map. That being said, there's not much land to begin with, so I'd like to keep what little bits we have as level as possible, inside and out.

    If you've ever played Annihilation on Shotbow, it's the same idea. The ores turn to cobble there and it keeps the area more intact so its easier to run around.

    Yay errors! At the very least it did recognize the plugin existed.
    Show Spoiler

    30.04 23:44:43 [Server] INFO ... 17 more
    30.04 23:44:43 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ~[spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_75]
    30.04 23:44:43 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_75]
    30.04 23:44:43 [Server] INFO at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_75]
    30.04 23:44:43 [Server] INFO at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_75]
    30.04 23:44:43 [Server] INFO at code.ShiftScore.onBreak(ShiftScore.java:64) ~[?:?]
    30.04 23:44:43 [Server] INFO Caused by: java.lang.NullPointerException
    30.04 23:44:43 [Server] INFO at java.lang.Thread.run(Thread.java:745) [?:1.7.0_75]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:710) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_75]
    30.04 23:44:43 [Server] INFO at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_75]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.PacketPlayInBlockDig.a(SourceFile:10) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.PacketPlayInBlockDig.a(SourceFile:40) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:612) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.PlayerInteractManager.a(PlayerInteractManager.java:215) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at net.minecraft.server.v1_8_R2.PlayerInteractManager.breakBlock(PlayerInteractManager.java:286) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[spigot.jar:git-Spigot-2f787bd-ea28011]
    30.04 23:44:43 [Server] INFO org.bukkit.event.EventException
    30.04 23:44:43 [Server] ERROR Could not pass event BlockBreakEvent to ShiftScore v1.0

    Same as last time, only shiftscore and shiftore are on the server.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 12, 2016
    pie_flavor likes this.
  24. Offline

    pie_flavor

    @Xanderpitz Fixed that error. I'm an idiot for not spotting it.
     
  25. Offline

    Xanderpitz

    Awesome, and nah that's just how coding works. Are the DL links on the first post you had or do you need to repost them?
     
  26. Offline

    pie_flavor

    @Xanderpitz Follow the first links. When I update a file my dropbox keeps the same link.
     
  27. Offline

    Xanderpitz

    Shiftore is still spitting out the ores onto the ground. Shiftscore, I'm not exactly sure if it's keeping track of anything or not but the scoreboard isn't showing up.
     
  28. Offline

    pie_flavor

    @Xanderpitz Weird. Never really worked with scoreboards before, but I can't find any faults with the code. Any errors in console? As for ShiftOre, I was just waiting on your confirmation, I guess I've got it.
    Edit: I have made yet another idiot mistake. I forgot to actually set the scoreboard of the player.
    Redownload both plugins for fix.
     
  29. Offline

    Xanderpitz

    ShiftOre works great, only thing is the Nether Quartz Ore should instantly re-appear. Currently, it is turning into bedrock like the rest of the ores.

    Shiftscore gave this error:
    Show Spoiler

    03.05 01:32:41 [Server] INFO ... 17 more
    03.05 01:32:41 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ~[spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_75]
    03.05 01:32:41 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_75]
    03.05 01:32:41 [Server] INFO at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_75]
    03.05 01:32:41 [Server] INFO at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_75]
    03.05 01:32:41 [Server] INFO at code.ShiftScore.onBreak(ShiftScore.java:66) ~[?:?]
    03.05 01:32:41 [Server] INFO Caused by: java.lang.NullPointerException
    03.05 01:32:41 [Server] INFO at java.lang.Thread.run(Thread.java:745) [?:1.7.0_75]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:710) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_75]
    03.05 01:32:41 [Server] INFO at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_75]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.PacketPlayInBlockDig.a(SourceFile:10) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.PacketPlayInBlockDig.a(SourceFile:40) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:598) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.PlayerInteractManager.a(PlayerInteractManager.java:121) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at net.minecraft.server.v1_8_R2.PlayerInteractManager.breakBlock(PlayerInteractManager.java:286) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[spigot.jar:git-Spigot-2f787bd-ea28011]
    03.05 01:32:41 [Server] INFO org.bukkit.event.EventException
    03.05 01:32:41 [Server] ERROR Could not pass event BlockBreakEvent to ShiftScore v1.0
     
  30. Offline

    pie_flavor

    @Xanderpitz Fixed ShiftOre; it was causing the problem. Also, did you restart or just reload the server? The new scoreboard is created on a PlayerLoginEvent.
     
Thread Status:
Not open for further replies.

Share This Page