[FUN/MECH] Rifts (Beta 1.09) - A fully featured MMO plugin (single or multi world support) [766]

Discussion in 'Inactive/Unsupported Plugins' started by lonelydime, May 2, 2011.

  1. Offline

    lonelydime

    [​IMG]

    Rifts - An all in one MMO plugin
    Version: v1.09 Beta

    Upgrade note 1.05: You will need to delete your plugins/Rifts/database.db file to get the pvp world to work. To avoid this, open your database.db file in SQLite Database Browser and in the execute sql tab, enter DROP TABLE CAGES; and restart your server. This should recreate the table and generate new cages (the dark world one never generated, the lightworld one will be in the same place. No need to regenerate the map). I apologize for having to do this, but going forward the need to mess with the database should be minimal.

    Please note this plugin is very BETA. It needs testing and will have bugs. Report the bugs here and I'll work to fix them. It also needs class balancing so if you notice some balancing needed just let me know and I'll do what I can to work with you. Also, this is a beefy plugin. If you cannot run at least 2 worlds at once on your server, it won't work real well for you. Sorry, but I don't have any plans on making this work on a one world server (3 if you want the pvp world).

    Description
    A PvP based RPG plugin that contains everything you need all in one plugin!

    Rifts contains 2 factions, the light and the dark. Each faction has their own world isolated from each other. Each faction has 5 classes:

    Fighter – Front line soldier, utilizes strength to cut down their opponents.
    • Gains 1 str point per level
    • Can use diamond swords
    • Can wear iron armor
    • Cannot use bows
    Defender – A soldier more reliant on defense than offense, great for sieges.
    • Gains 1 def point per level
    • Can use iron swords
    • Can wear diamond armor
    • Cannot use bows
    Mage – A high powered character with little defensive abilities.
    • Gains 1 int point per level, to use magic must be holding a book
    • Can use stone swords
    • Can wear cloth armor
    • Cannot use bows
    Priest – A support unit able to heal themselves as well as their party members.
    • Gains 1 spr point per level, to use magic must be holding a stick
    • Can use stone swords
    • Can wear iron armor
    • Cannot use bows
    Archer – Able to attack from greater distances, uses mana to enhance their arrows.
    • Gains 1 agl point per level
    • Can use stone swords
    • Can wear cloth armor
    • Can use bows
    For every level a character gains, they get 7 stats points, 2 skill points as well as unlocking new skills to buy.

    Each player has 6 attributes they can add their stats to:

    Str (Strength) – How much damage you do with a physical attack (sword, axe, bow).
    Def (Defense) – How much damage is negated due to any type of damage (entity, falling, fire, etc).
    Int (Intelligence) – How strong magic spells are (fireball, heal, etc).
    Spr (Spirit) – How quickly your mana regenerates, your total mana and how often you land attacks (magical only).
    Agl (Agility) – How often you are able to dodge attacks.
    Dex (Dexterity) – How often you land attacks (physical only).

    Rifts
    As time goes on in the game, Rifts appear at a random time (0-5 in game days) for a duration of half an in-game day. They always appear above ground, but can be anywhere on any loaded chunk (including in the middle of an ocean). They will also only appear if both faction worlds have at least 1 chunk loaded (does not require players to be in the world). Rifts allow a faction to teleport to the opposing faction’s world and do whatever they want there. However, when someone dies in the opposing faction’s world, they will be teleported back to their own on respawn.

    PvP
    The third world (pvpworld) has the nether environment. Both factions can access this world by creating a portal. To create a portal, make a standard obsidian portal rectangle and place a sign on any part of the active portal, if the portal is not 'lit' then it won't take. The first line of the sign should say @pvp (if you are in the pvpworld, a portal can be made back to your home world by typing @home as the first line). Once the portal is created, it will link to that faction’s “cage” inside of pvp. The cage is a room made completely of glass and is indestructible. If the opposing faction comes within 30 blocks of the cage, they will receive a warning. If they continue getting close they will instantly die. This is to prevent spawn camping. Experience is greater in pvp than in the normal worlds. Once altars are implemented they will also add incentive to go into pvp.

    Altars
    Altars still need to be added into pvpworld and are still in design phases. What they will be is areas that can be taken over by a faction. The owning faction will gain a benefit by owning the altar. They will also be in charge of defending their alters from attack by the opposing factions. I may add in mobs that only target the opposing faction to help defend, but again, it’s in the design phase.

    SpawnBlocks
    A spawnblock is a temporary spawn location created by the player. Spawnblocks can be created by any user that has enough money to do so by placing a sign on an obsidian block with the first line reading @setspawn. The amount it costs to create one is configurable in the config.yml file. Spawnblocks can hold up to 4 player’s spawn locations, all a user has to do is right click the block to add themselves to it. By default they have a life span of 20 spawns before they are destroyed. Anyone can destroy a spawnblock by breaking the obsidian block that holds the sign. Only the creator of the block can destroy the sign, destroying the spawn block. There is a glowstone on top of the spawnblock that allows for easier detection by those who would want to destroy it. Players spawn on top of the glowstone so hiding it with blocks would create an unsafe spawn for those bound to it. The glowstone is also unbreakable as long as the spawn block is active.

    Commands
    Show Spoiler

    /joinrifts {light/dark} {class name} – allows a player to join a faction as a class
    /level - shows a character his/her current level
    /class – shows a character his/her class. Can be used like /class {user} to find a user’s class.
    /party {player name} – creates a party or adds people to an existing party. Parties have a max size of 4.
    /party leader {player name} – when typed by the current party leader, switches the leader.
    /party invites {public/leader} – changes the invite type from private (leader only invites) to public (any party member can invite).
    /party loot {leader/random} – currently does not do anything.
    /leaveparty – lets a user leave a party they’re in.
    /disbandparty – allows the party leader to disband the party.
    /spawnblock: {uses, bound, leave} – lets a user see uses left on the spawnblock, if they are bound to one or not and finally, allows them to leave the block they are bound to.
    /exp – shows a player their current exp bar.
    /stats – shows a player their current stat levels as well as free stats.
    /stats add # {str/def/spr/int/agl/dex} – allows users to add to their stats using their free stats.
    /skill {add} {skillname} – used like /skill, it will show a user their available skills and mp costs. Used like /skill {skillname} will activate the skill for use (Can also be done by "skill scrolling"). Used like /skill add {skillname} it will add the skill to the user's list of available skills. /skill off turns the active skill off.
    /skills - shows the user the list of skills they can currently "buy" with skill points earned through leveling.
    /status – shows a player their class, level and current mana bar.
    /hide {exp/miss} – will hide the exp or miss notifications.
    /show {exp/miss} – will show the exp or miss notifications.
    /resetcharacter - will delete your character and allow you to rejoin the game as a different faction and class. It will delete all of your stats/levels/exp/etc.

    GM Commands
    /savechars – saves the current online player’s stats and information into the database.
    /setclass {player name} {class name} – allows GMs to switch a player’s class
    /fullheal – fully heals the GMs health and mana bar
    /setlevel: {player name} {level} – allows GMs to change a player’s level.
    /setstats {player name} {stats number} – allows GMs to change the free stats a player has.
    /setskills {player name} {skills number} - allows GMs to change the free skill points a player has.
    /toworld {world name} – teleports a GM between worlds using the world’s name.
    /createrift: - Allows a GM to manually create rifts, however they cannot choose where the rifts are created.

    How to install:
    • Download Rifts.jar
    • Download sqlitejdbc-v056.jar if you do not already have it.
    • Put Rifts.jar in your plugins/ directory.
    • Put sqlitejdbc-v056.jar into your craftbukkit directory.
    • [Optional] Edit plugins/Rifts/config.yml and change them how you'd like (an example can be found in this post if it's your first install, just make the file plugins/Rifts/config.yml).
    • [Optional] If you're using Permissions or GroupManager, use rifts.gm for GMs and spawnblock.create for those that can create spawnblocks.
    • Restart your server.
    • On your first install, it may take some time to generate the pvp cages. Please let it finish or you will need to start over from scratch.
    • If you are upgrading, please read the upgrade notes at the top of the post if there are any!
    Installation Notes:
    • This plugin conflicts heavily with mcmmo, it is not recommended you use both.
    Config Walkthrough:
    Show Spoiler

    spawnblock-iconomy-cost: 0 // How much it costs to create a spawn-block
    spawnblock-uses: 20 // How many times a spawn block can be 'used' before it expires. 1 use per respawn.
    force-autojoin: false // setting this to true will force users to join when they connect to your server. They will be assigned to the faction that has a lower number of members.
    use-pvpmap: true // setting this to false will disable the pvp world. Portals will not connect to it, but rifts will still form. If you're having trouble running all 3 maps, turning this off may help
    use-factions: true // setting this to false will disable lightworld and darkworld. You will only be using the class/standard RPG functions of this plugin. No rifts.
    //These are the seeds your worlds will be created from if you have a seed in mind. Please keep in mind that lightworld and darkworld are created as NORMAL worlds, pvpworld is NETHER.
    lightworld-seed:
    darkworld-seed:
    pvpworld-seed:
    //Changes the name of the world names. It will create a new map with that folder.
    lightworld-name:
    darkworld-name:
    pvpworld-name:
    must-rift-to-play: false

    #Experience - These are a multipliers: 5 is normal, 10 is double exp, etc.
    #Players is for pvp kills, Mobs is for monsters and Blocks is for breaking blocks.
    players: 5
    mobs: 5
    blocks: 5

    #Gold received - This are a multipliers: 5 is normal, 10 is double exp, etc.
    #Gold is only given when mobs or players are killed.gold-received: 5

    Current TODO list - Please read before posting addition suggestions:
    Show Spoiler

    In Progress
    • Examine (not implement) dual class idea - level 60 allows you to continue as another class
    • Balance damage (main focus)
    • Start guild support
    Future Release
    • Create guild support/cities
    • Add unique weapons as rare mob drops to gain better stats/skills in those
    • Add crafting skills that are levelable
    • Add in GM/Guild leader quest signs.
    • Add the class summoner and rogue/assassin.
    • Add altars to pvp.
    • Possible addition of chainmail armor for archer’s use.
    • Implement a PvP ranking system.

    FAQ - Please read this before requesting a change (not a bug):
    Show Spoiler

    Q: Can this be made to only run on one world instead of two/three?
    A: Yes!

    Q: I miss mobs a lot/do no damage. Why?
    A: As you level, mobs also level. If you're not keeping up with your dexterity and strength stats, you'll quickly notice that you won't be doing much to kill them. Always maintain your dexterity and strength (spirit if you're a priest or mage). If you've used the /changelevel gm command, this will also cause this unless you also balance your stats.

    Q: I feel my stats are fine, but I'm still missing too much or not doing enough damage. Can't anything be done?
    A: Post your level and stats. That way I can better balance the game. I know balancing needs to be done, but I can't do that unless I know how you're using stats and what needs to be adjusted.

    Changelog:

    Version Beta 1.09
    • Added option to disallow unregistered users from building/destroying.
    • Added check for blockbreak, if it's cancelled via another plugin don't add exp.
    • Fixed glowing redstone gives no exp
    • Fixed Portals not loading on server restart
    • Fixed obsidian experience
    • Fixed joinrifts message showing factions when usefactions = false
    • Self skill now heals 1 if spr is too low and reduces mana
    • Readded skill list when /skill is typed with no parameters
    • Added riftportal.create (permissions/groupmanager) for portal creation
    • increase TNT Arrow damage
    • Lowered priest healing skills by 5 mana.
    • Changed healing spells to use Spirit instead of Int
    Show Spoiler

    Version Beta 1.08
    • Minimized the config file by using multipliers instead of individual instance experience values
    • Fixed aggressive mobs not dying in the sunlight.
    • Better balanced mob damage.
    • Fixed impale for archers.
    • Removed weapon/armor restrictions on non-rift worlds.
    • Removed the warning when a player is near.
    • Started guild code, more to come.
    Version Beta 1.07
    • Fixed meteor to not be resource heavy. Moves faster, does more damage.
    • Added warnings if the opposing faction is nearby (unless they're in sneak mode)
    • Fixed Fall (all natural) damage using defense to lessen the damage.
    • Made self and taunt a repeatable spell that can be accessed through cycle
    • Added damage to entity hit with blast
    • Made armor more effective in decreasing damage based on level
    • Made weapons more effective in increasing damage based on level
    • Changed Mages to use books to prevent griefers, Priests still use sticks.
    • Fixed cycling through mutliple skills to the highest level skill only.
    • Turned off friendly fire for single server Rifts
    • Allowed GMs to use /toworld without being killed for spawn camping.
    • Fixed rift creation algorithm
    Version Beta 1.06
    • Added support for single world servers
    Version Beta 1.05
    • Fixed armor type restrictions
    • Fixed mana going negative
    • Fixed database locking issue again, now works as one connection
    • Fixed cage generation for pvp maps (the player_move error)
    • Increases exp reqs - 34 million for level 60. Wowzers!
    Version Beta 1.04
    • Seperate skill level from the name
    • Find/fix database lock issue.
    • Fixed left clicking with nothing in your hand throwing a null pointer error.
    • Fixed a display problem with /savechars
    • Fixed level 2&3 skills showing in /skills if you already have it.
    • Fixed being able to add level 3 skills multiple times
    • Fixed skill names having to be case sensitive.
    • Made rifts spawn at least 60 blocks away from the world's spawn to stop spawn camping kills
    • Fixed entangle to destroy webs after 10 seconds, made them unbreakable
    Version Beta 1.03
    • Renamed cloth armor to leather armor.
    • Made eating food heal your mana.
    • Add mana per level
    • Converted all character integers to more appropriate data types.
    • Added /statshelp as part of the tutorial.
    • Added a basic tutorial once you join rifts.
    • Created the level cap 60
    • Fixed damages from mobs, added more damage to mobs.
    Version Beta 1.02
    • Made world names customizable (change folder names).
    • Added some tutorial lines for commands when the commands become relavent.
    • Cleaned up /status, /skills, /skilllist, skill cycle displays. Add more info to /status.
    • Fixed pvpworld insta-kill on enter
    • Re-add drops to mobs killed by setHealth()
    • Fixed heal overhealing
    • Fixed Whirl not being able to be used because it reports mana is too low.
    • Updated iConomy support to iConomy 5
    • Fixed /resetcharacter printing out the command when entered.
    • Turned friendly fire back off
    • Fixed joining rifts if auto-join is true.
    • Changed changelevel/changeclass to setlevel/setclass
    • Fixed /joinrifts teleport teleporting you into blocks and respawn into blocks and /toworld into blocks.
    • Fixed miss and experience notifications being off by default.
    • Lowered the chances of attacks missing/being dodged
    • Remove rifts on disable.
    Version Beta 1.01
    • Fixed rift/portal teleporting to get around minecraft's fly/kick feature.
    • Fixed PvP cage glowstone being able to be destroyed.
    • Added "scrolling" through skills by left/right clicking with your weapon in hand. (If you are a fighter, right click air with a sword, defender use an axe. Mage LEFT click air with a stick, priest do the same, archer use a bow).
    Version Beta 1.0
    • Public beta release.
     
    Fallen_Advent, Jabbic, Juze and 5 others like this.
  2. Offline

    OBudista

    Indeed he did. That doesn't automatically make me do it though. I'll probably look into it when I finish the essentials anyway.
     
    GehennaGirl likes this.
  3. Offline

    larsy1995

    Could you make the world-faction spawn thing that lonelydime added optional by a option in the config or make it a sideplugin or something?
     
  4. Offline

    GehennaGirl

    You are such a lazy Bandito, Obudista. <3

    Just come to #sweetcraft.me on irc.esper.net to harass him full time 24/7 like i do.

    Obu works best with leather against his back. Don't worry. I will harass him every morning he wakes and evening before bed that i see him in the channel. *Crack that whip over Obudista's back* CODE!
     
  5. Offline

    Pencil

    Never said that ^^ Just wanted to know if what i saw was what I thought it was :) And, even if you just do towns, you might just have to rewrite it a bit ^^
     
  6. Offline

    larsy1995

    Another suggestion : What do yuo think about a custom currency system with gold silver and copper, or anything similiar to that?
     
  7. Offline

    transient

    Given the amount of plugins unrelated to Rifts that integrate with economy systems such as iConomy, I'd prefer not having to manage two systems.
     
    larsy1995 likes this.
  8. Offline

    ryo95

    i dont have time to read through all of this, so can some1 pls tell mehow to use skills with archers?
     
  9. Offline

    Saul R.W

    I can point you to the first post so you can have some time reading it.
     
  10. Offline

    Kobra1984

    this going to be updated?
     
  11. Offline

    OBudista

    sure is. in time
     
  12. Offline

    Kobra1984

    oh ok cool
     
  13. Offline

    lonelydime

    Thanks for taking over the plugin development! If you have any questions about the code feel free to send me a message, I left a lot of the comments and what not in there so hopefully it's not too horrible.

    It was a debug measure since I kept getting requests to join/test things without being given the proper ability to do so. Got annoying lol. Never joined a server without being there to test only nor was it ever abused. Though I see how it looks and it wasn't meant to be in there after whatever version it was I was testing the 'more than one person' aspects to it. Doesn't excuse it, but that's why.
     
  14. Offline

    larsy1995

    Could you make it so that the rift portals comes in a jar for itself? they are one of the reasons I used this plugin, and I dont want to be bound to all the other features just because of them.
     
  15. Offline

    Dangazzm

    Wow, I can't believe I didn't see this plugin sooner... This looks so amazing. I gotta give you all props for this. I am so close to opening a new server dedicated to this cause I think the potential is AMAZING.
     
  16. Offline

    eirikbjo

    WOW BEST PLUGIN EVAR!
     
  17. Offline

    LostSoulFly

    Can't wait for this to be updated!
     
  18. Offline

    OBudista

    Okay update.
    1. Portals are changed. All their functionality is in RiftsPortals.jar.
    2. Cages are gone. Protection distance isn't
    3. You can now flee the enemy world through one of their gates. You then have 30 seconds to clear from the portal area or you'll get killed.
    4. Portals in the pvpworld are invisible, even from the creator. All portals are to be created and destroyed in the home world. The pvp world portal is destroyed/created automatically.
    5. Portal pvp protection is now as follows:
      1. Distance <60 blocks = warning.
      2. Distance < 30 blocks = instant death.
    6. Portals always appear on the surface, no more underground cages.
    I haven't change any other functionality, some might have stopped working with 818. I believe that at least the spawn functionality isn't working properly, and I was told it was a bukkit issue. I might be able to fix that later if you guys and gals happen to find it annoying. Same goes with any other bug. Please report them.

    All Portals need to be rebuild! This is a matter of simply deleting the sign and replacing it with @pvp. Also don't forget to BACKUP your server before trying this plugin. More than half of the code wasn't made by me and I give no guarantees this will work at all. (although I expect it to :p)

    http://dl.dropbox.com/u/2503017/obu/Rifts/Rifts.jar
    http://dl.dropbox.com/u/2503017/obu/Rifts/RiftsChat.jar
    http://dl.dropbox.com/u/2503017/obu/Rifts/RiftsPortals.jar

    I will only create a new thread for the plugin when i have it finished.

    I've got a pretty busy week freelancing for real money so don't expect daily updates. But I'll try keeping on top of this plugin and release stuff as fast as possible.

    Next update will probably be bug fixing and combat/skills balancing/configuration. So please provide feedback on these subjects.
     
    transient, LostSoulFly and Saul R.W like this.
  19. Offline

    transient

    @OBudista Awesome, will try it on my test server tonight!
     
  20. Offline

    LostSoulFly

    Blocks cannot be broken, seems to be a RiftsPortal problem, it gives me EXP for breaking the blocks but the block returns instantly. I can't place blocks/torches anywhere, they disappear instantly.

    This is awesome stuff, thanks for updating it :)
    Code:
    2011-06-02 12:37:35 [INFO] Plugins: HomeBukkit, ScrapBukkit, dynmap, Labyrinth, Permissions, Rifts, RiftsChat, RiftsPortals, SimpleGive, Tetris
    2011-06-02 12:37:37 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-766-g3fc0460-b818jnks (MC: 1.6.6)
    2011-06-02 12:37:37 [INFO] This server is also sporting some funky dev build of Bukkit!
    
    Code:
    2011-06-02 12:36:41 [INFO] Starting minecraft server version Beta 1.6.6
    2011-06-02 12:36:41 [INFO] Loading properties
    2011-06-02 12:36:41 [INFO] Starting Minecraft server on *:25565
    2011-06-02 12:36:41 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-766-g3fc0460-b818jnks (MC: 1.6.6)
    2011-06-02 12:36:41 [INFO] Preparing level "Pandora"
    2011-06-02 12:36:41 [INFO] Preparing start region for level 0
    2011-06-02 12:36:42 [INFO] Preparing spawn area: 81%
    2011-06-02 12:36:42 [INFO] Preparing start region for level 1
    2011-06-02 12:36:43 [INFO] Preparing spawn area: 85%
    2011-06-02 12:36:43 [SEVERE] ebean.properties not found
    2011-06-02 12:36:43 [INFO] DataSourcePool [HomeBukkit] autoCommit[false] transIsolation[SERIALIZABLE] min[2] max[20]
    2011-06-02 12:36:44 [INFO] SubClassFactory parent ClassLoader [org.bukkit.plugin.java.PluginClassLoader]
    2011-06-02 12:36:44 [INFO] Entities enhanced[0] subclassed[1]
    2011-06-02 12:36:44 [INFO] [Permissions] (Yeti) was initialized.
    2011-06-02 12:36:44 [INFO] HomeBukkit v0.0.1 has been enabled
    2011-06-02 12:36:45 [INFO] ScrapBukkit version 0.2.1 is enabled!
    2011-06-02 12:36:45 [INFO] [Permissions] version [3.1] (Yeti)  loaded
    2011-06-02 12:36:45 [INFO] [dynmap] Using environment as template: normal
    2011-06-02 12:36:45 [INFO] [dynmap] Configuration of world Pandora
    2011-06-02 12:36:45 [INFO] [dynmap] center: org.dynmap.ConfigurationNode@1bb205a
    2011-06-02 12:36:45 [INFO] [dynmap] enabled: true
    2011-06-02 12:36:45 [INFO] [dynmap] title: Pandora
    2011-06-02 12:36:45 [INFO] [dynmap] maps: [{class=org.dynmap.kzedmap.KzedMap, renderers=[{class=org.dynmap.kzedmap.DefaultTileRenderer, name=surface, title=Surface, prefix=t, maximumheight=127, colorscheme=default}, {class=org.dynmap.kzedmap.CaveTileRenderer, name=cave, title=Cave, prefix=ct, maximumheight=127}]}, {class=org.dynmap.flat.FlatMap, name=flat, title=Flat, prefix=flat, colorscheme=default}]
    2011-06-02 12:36:45 [INFO] [dynmap] name: Pandora
    2011-06-02 12:36:45 [INFO] [dynmap] Loading maps of world 'Pandora'...
    2011-06-02 12:36:45 [INFO] [dynmap] Loading renderers for map 'class org.dynmap.kzedmap.KzedMap'...
    2011-06-02 12:36:45 [INFO] [dynmap] Loaded 2 renderers for map 'class org.dynmap.kzedmap.KzedMap'.
    2011-06-02 12:36:45 [INFO] [dynmap] Loaded 2 maps of world 'Pandora'.
    2011-06-02 12:36:45 [INFO] [dynmap] Using environment as template: nether
    2011-06-02 12:36:45 [INFO] [dynmap] Configuration of world Pandora_nether
    2011-06-02 12:36:45 [INFO] [dynmap] center: org.dynmap.ConfigurationNode@4a0ac5
    2011-06-02 12:36:45 [INFO] [dynmap] enabled: true
    2011-06-02 12:36:45 [INFO] [dynmap] title: Pandora_nether
    2011-06-02 12:36:45 [INFO] [dynmap] maps: [{class=org.dynmap.flat.FlatMap, name=flat, title=Flat, prefix=flat, colorscheme=default}, {class=org.dynmap.kzedmap.KzedMap, renderers=[{class=org.dynmap.kzedmap.DefaultTileRenderer, name=nether, title=Surface, prefix=nt, maximumheight=127, colorscheme=default}]}]
    2011-06-02 12:36:45 [INFO] [dynmap] name: Pandora_nether
    2011-06-02 12:36:45 [INFO] [dynmap] Loading maps of world 'Pandora_nether'...
    2011-06-02 12:36:45 [INFO] [dynmap] Loading renderers for map 'class org.dynmap.kzedmap.KzedMap'...
    2011-06-02 12:36:45 [INFO] [dynmap] Loaded 1 renderers for map 'class org.dynmap.kzedmap.KzedMap'.
    2011-06-02 12:36:45 [INFO] [dynmap] Loaded 2 maps of world 'Pandora_nether'.
    2011-06-02 12:36:45 [INFO] [dynmap] Loaded 8 components.
    2011-06-02 12:36:45 [INFO] [dynmap] Dynmap WebServer started on null:8123
    2011-06-02 12:36:45 [INFO] [dynmap] version 0.17 is enabled
    2011-06-02 12:36:45 [INFO] Load Labyrinth v0.1 maintained by _skyler_
    2011-06-02 12:36:45 [INFO] [Rifts] Loading lightworld.
    2011-06-02 12:36:46 [INFO] [dynmap] Using environment as template: normal
    2011-06-02 12:36:46 [INFO] [dynmap] Configuration of world lightworld
    2011-06-02 12:36:46 [INFO] [dynmap] center: org.dynmap.ConfigurationNode@850e8c
    2011-06-02 12:36:46 [INFO] [dynmap] enabled: true
    2011-06-02 12:36:46 [INFO] [dynmap] title: lightworld
    2011-06-02 12:36:46 [INFO] [dynmap] maps: [{class=org.dynmap.kzedmap.KzedMap, renderers=[{class=org.dynmap.kzedmap.DefaultTileRenderer, name=surface, title=Surface, prefix=t, maximumheight=127, colorscheme=default}, {class=org.dynmap.kzedmap.CaveTileRenderer, name=cave, title=Cave, prefix=ct, maximumheight=127}]}, {class=org.dynmap.flat.FlatMap, name=flat, title=Flat, prefix=flat, colorscheme=default}]
    2011-06-02 12:36:46 [INFO] [dynmap] name: lightworld
    2011-06-02 12:36:46 [INFO] [dynmap] Loading maps of world 'lightworld'...
    2011-06-02 12:36:46 [INFO] [dynmap] Loading renderers for map 'class org.dynmap.kzedmap.KzedMap'...
    2011-06-02 12:36:46 [INFO] [dynmap] Loaded 2 renderers for map 'class org.dynmap.kzedmap.KzedMap'.
    2011-06-02 12:36:46 [INFO] [dynmap] Loaded 2 maps of world 'lightworld'.
    2011-06-02 12:36:46 [INFO] [Rifts] Loading darkworld.
    2011-06-02 12:36:47 [INFO] [dynmap] Using environment as template: normal
    2011-06-02 12:36:47 [INFO] [dynmap] Configuration of world darkworld
    2011-06-02 12:36:47 [INFO] [dynmap] center: org.dynmap.ConfigurationNode@191394e
    2011-06-02 12:36:47 [INFO] [dynmap] enabled: true
    2011-06-02 12:36:47 [INFO] [dynmap] title: darkworld
    2011-06-02 12:36:47 [INFO] [dynmap] maps: [{class=org.dynmap.kzedmap.KzedMap, renderers=[{class=org.dynmap.kzedmap.DefaultTileRenderer, name=surface, title=Surface, prefix=t, maximumheight=127, colorscheme=default}, {class=org.dynmap.kzedmap.CaveTileRenderer, name=cave, title=Cave, prefix=ct, maximumheight=127}]}, {class=org.dynmap.flat.FlatMap, name=flat, title=Flat, prefix=flat, colorscheme=default}]
    2011-06-02 12:36:47 [INFO] [dynmap] name: darkworld
    2011-06-02 12:36:47 [INFO] [dynmap] Loading maps of world 'darkworld'...
    2011-06-02 12:36:47 [INFO] [dynmap] Loading renderers for map 'class org.dynmap.kzedmap.KzedMap'...
    2011-06-02 12:36:47 [INFO] [dynmap] Loaded 2 renderers for map 'class org.dynmap.kzedmap.KzedMap'.
    2011-06-02 12:36:47 [INFO] [dynmap] Loaded 2 maps of world 'darkworld'.
    2011-06-02 12:36:47 [INFO] [Rifts] Loading pvpworld.
    2011-06-02 12:36:48 [INFO] [dynmap] Using environment as template: nether
    2011-06-02 12:36:48 [INFO] [dynmap] Configuration of world pvpworld
    2011-06-02 12:36:48 [INFO] [dynmap] center: org.dynmap.ConfigurationNode@f4da6d
    2011-06-02 12:36:48 [INFO] [dynmap] enabled: true
    2011-06-02 12:36:48 [INFO] [dynmap] title: pvpworld
    2011-06-02 12:36:48 [INFO] [dynmap] maps: [{class=org.dynmap.flat.FlatMap, name=flat, title=Flat, prefix=flat, colorscheme=default}, {class=org.dynmap.kzedmap.KzedMap, renderers=[{class=org.dynmap.kzedmap.DefaultTileRenderer, name=nether, title=Surface, prefix=nt, maximumheight=127, colorscheme=default}]}]
    2011-06-02 12:36:48 [INFO] [dynmap] name: pvpworld
    2011-06-02 12:36:48 [INFO] [dynmap] Loading maps of world 'pvpworld'...
    2011-06-02 12:36:48 [INFO] [dynmap] Loading renderers for map 'class org.dynmap.kzedmap.KzedMap'...
    2011-06-02 12:36:48 [INFO] [dynmap] Loaded 1 renderers for map 'class org.dynmap.kzedmap.KzedMap'.
    2011-06-02 12:36:48 [INFO] [dynmap] Loaded 2 maps of world 'pvpworld'.
    2011-06-02 12:36:48 [INFO] [Rifts] Skills loaded
    2011-06-02 12:36:48 [INFO] [Rifts] version 1.1 by OBudista is enabled!
    2011-06-02 12:36:48 [INFO] [RiftsChat version 0.1] Enabled!
    2011-06-02 12:36:48 [INFO] [RiftsPortals version 0.1] Checking portal integrity!
    2011-06-02 12:36:48 [INFO] [RiftsPortals version 0.1] Enabled!
    2011-06-02 12:36:48 [INFO] [SimpleGive] Version 1.2 Permissions system detected!
    2011-06-02 12:36:48 [INFO] [SimpleGive] SimpleGive v1.2 by captainawesome7 has been enabled!
    2011-06-02 12:36:48 [INFO] [Tetris] Permission plugin found, Adding these
    2011-06-02 12:36:48 [INFO] Tetris version 0.4 is enabled!
    2011-06-02 12:36:48 [INFO] Done (0.674s)! For help, type "help" or "?"
    2011-06-02 12:37:35 [INFO] Plugins: HomeBukkit, ScrapBukkit, dynmap, Labyrinth, Permissions, Rifts, RiftsChat, RiftsPortals, SimpleGive, Tetris
    2011-06-02 12:38:17 [INFO] Creating user LostSoulFly
    2011-06-02 12:38:26 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:38:27 [INFO] [dynmap] Chunk snapshot support enabled
    2011-06-02 12:38:32 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:38:34 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:38:35 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:16 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:19 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:20 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:21 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:22 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:23 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:27 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:45)
        at net.minecraft.server.EntityPlayer.o_(EntityPlayer.java:86)
        at net.minecraft.server.World.entityJoinedWorld(World.java:1071)
        at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:56)
        at net.minecraft.server.World.playerJoinedWorld(World.java:1053)
        at net.minecraft.server.World.cleanUp(World.java:1030)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:397)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:27 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:28 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:29 [SEVERE] Could not pass event BLOCK_BREAK to RiftsPortals
    java.lang.ClassCastException: org.bukkit.craftbukkit.block.CraftBlockState cannot be cast to org.bukkit.block.Sign
        at obu.Rifts.rpBlockListener.onBlockBreak(rpBlockListener.java:27)
        at org.bukkit.plugin.java.JavaPluginLoader$34.execute(JavaPluginLoader.java:475)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:156)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:462)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-02 12:39:40 [INFO] Stopping the server..
    2011-06-02 12:39:40 [INFO] Stopping server
    2011-06-02 12:39:40 [INFO] [dynmap] Unloaded 8 components.
    2011-06-02 12:39:40 [INFO] [dynmap] Stopping map renderer...
    2011-06-02 12:39:40 [INFO] [dynmap] Stopping map renderer...
    2011-06-02 12:39:40 [INFO] [dynmap] Shutting down webserver...
    2011-06-02 12:39:40 [INFO] [dynmap] map WebServer.run() stops with IOException
    2011-06-02 12:39:40 [INFO] [dynmap] Webserver shut down.
    2011-06-02 12:39:40 [INFO] [Permissions] (Yeti) saved all data.
    2011-06-02 12:39:40 [INFO] [Permissions] (Yeti) disabled successfully.
    2011-06-02 12:39:40 [INFO] [Rifts] Characters saved.
    2011-06-02 12:39:40 [INFO] [Rifts] Cleared active rifts.
    2011-06-02 12:39:40 [INFO] [Rifts] SpawnBlocks cleared.
    2011-06-02 12:39:40 [INFO] [Rifts] Skills cleared.
    2011-06-02 12:39:40 [INFO] [Rifts] Schedules cancelled.
    2011-06-02 12:39:40 [INFO] [Rifts] Disabled
    2011-06-02 12:39:40 [INFO] [RiftsChat version 0.1] Disabled!
    2011-06-02 12:39:40 [INFO] [RiftsPortals version 0.1] Disabled!
    2011-06-02 12:39:40 [INFO] [SimpleGive] SimpleGive v1.2 has been disabled!
    2011-06-02 12:39:40 [INFO] Saving chunks
    2011-06-02 12:39:41 [INFO] Saving chunks
    2011-06-02 12:39:41 [INFO] Saving chunks
    2011-06-02 12:39:41 [INFO] Saving chunks
    2011-06-02 12:39:41 [INFO] Saving chunks
    2011-06-02 12:39:41 [INFO] Stopping server
    
    Initially I had Scavenger enabled as well, but it turns out to not be causing any noticeable problems thankfully.

    EDIT:
    It's a permissions issue on my end (Likely from having new worlds I didn't configure my permissions for) that the blocks are re-appearing, but the error remains the same after breaking the blocks.
     
  21. Offline

    OBudista

    Indeed, the problem is mine. I fixed the issue regarding the crash but I assume it will still provide xp when not-breaking. That is an issue I'll have to work out on the main Rifts plugin's jar.

    Thanks for testing it.

    Check this new version.
    http://dl.dropbox.com/u/2503017/obu/Rifts/RiftsPortals.jar
     
  22. Offline

    LostSoulFly

    No more error, thanks! Will put it through the wringer with some friends.

    Small request so far though: /rift(s) command to list possible commands available (if it exists I haven't seen it)
     
  23. Offline

    Jany95

    lonelydime it's me again, nice bugfixes but redstone is not really fixed, glowing redstone gives 1 exp and redstone gives 40 (on my server). think that bug came with the new mc patch because i noticed it just a few minutes ago.
     
  24. Offline

    Saul R.W

    wow ignorance reigns supreme in you Jany95. Read the first post and check some of the last few pages.
     
    GehennaGirl likes this.
  25. Offline

    phoenixstar

    is there a way to set the place when the rift opens? Im thinking once the message appears that its open then the portal will work. im looking at it for an rpg server, so that its something that is always expected and where its coming from. Even if i could hide it on the map, and just use that as a starting point. I noticed the rifts appear rather distant from where i am, and almost cant make it to it before it disappears. maybe i missed something and i apologize in advance if i did :)
     
  26. Offline

    OBudista

    Okay,

    So I've been working on the design for the classes/skills/conditions/effects system. I want a system that is almost fully customized, where new features can just be built on the existing ones and allowing an abstraction from the code giving server admins full freedom in terms of customization.

    Here is the general idea:
    Show Spoiler
    [​IMG]


    Basically the entire code will be focused on interpreting each core attributes assigned to a player at any given time. The more "HIT" a player has, the more chance he/she will have to hit targets, the more "DMG" a player has the more damage he/she will do to a target. I've a list of the planned core attributes (they might change):
    • DMG: More damage
    • HIT: Hits more
    • HREG: How fast a player recovers health
    • MREG: How fast a player recovers mana
    • MHP: Maximum HP
    • MMP: Maximum MP
    • PRES: Physical resistence (takes less damage)
    • DODGE: How often the player avoids being hit
    • HDMG: Damage (health) over time
    • MDMG: Damage (mana) over time
    • SPEED: Walking speed changer (if possible)
    The entire system of classes, skills, conditions and effects will have the objective of adding/removing points from core attributes (which can become negative) allowing the proper processing of everything, from poison effects, to healing, to auras, to other effects like blindness (where you miss all the time).

    Each of the following will have individual configuration files you can edit to fully customize this: Attributes, Effects, Conditions, Skills, Classes.

    Notice that I've added XML configuration instead of YML, it is my conviction that XML will prove itself more easy and safe to edit as less errors will occur. Some people might be confused at first but it is quite simple and there are a lot more help resources available on the internet, like online parsers, tutorials and etc.

    Here are some examples of the configuration files:

    Attributes.xml
    Code:
    <attributes>
    	<attribute name="Strength" symbol="STR" description="How much damage you do with a physical attack (sword, axe, bow).">
    		<ca name="DMG" amount="1"/>
    		<ca name="MAXHP" amount="1"/>
    	</attribute>
    	<attribute name="Defense" symbol="DEF" description="How much damage is negated due to any type of damage (entity, falling, fire, etc).">
    		<ca name="PRES" amount="1"/>
    	</attribute>
    	<attribute name="Intelligence" symbol="INT" description="How strong magic spells are (fireball, heal, etc)."></attribute>
    	<attribute name="Spirit" symbol="SPR" description="How quickly your mana regenerates, your total mana and how often you land attacks (magical only).">
                    <ca name="FRES" amount="1"/>
    		<ca name="MREG" amount="1"/>
    		<ca name="MAXMP" amount="1"/>
    	</attribute>
    	<attribute name="Agility" symbol="AGL" description="How often you are able to dodge attacks.">
    		<ca name="DODGE" amount="1"/>
    	</attribute>
    	<attribute name="Dexterity" symbol="DEX" description="How often you land attacks (physical only).">
    		<ca name="HIT" amount="1"/>
    	</attribute>
    </attributes>
    Effects.xml
    Code:
    <effects>
    	<effect name="Poison" symbol="PSN" description="Damage over time">
    		<ca name="HDMG" amountmultiplier="5"/>
    	</effect>
    	<effect name="Inspired" symbol="ISP" description="Inspired players are more effective in combat">
    		<ca name="PRES" amountmultiplier="10"/>
    		<ca name="DODGE" amountmultiplier="10"/>
    		<ca name="DMG" amountmultiplier="10"/>
    	</effect>
    </effects>
    
    
    Conditions.xml
    Code:
    <conditions>
    	<condition name="Poison 1" symbol="PSN1" description="Poisoned players will take damage over time">
    		<effect name="Poison" amount="1" time="10"/>
    	</condition>
    	<condition name="Poison 2" symbol="PSN2" description="Poisoned players will take damage over time">
    		<effect name="Poison" amount="2" time="12"/>
    	</condition>
    	<condition name="Inspired 1" symbol="ISP1" description="Inspired players are more effective in combat">
    		<effect name="Inspired" amount="1" time="60"/>
    	</condition>
    	<condition name="Inspired 2" symbol="ISP2" description="Inspired players are more effective in combat">
    		<effect name="Inspired" amount="2" time="120"/>
    	</condition>
    </conditions>
    Classes.xml
    Code:
    <classes>
    	<class name="Fighter" symbol="FGH" description="Front line soldier, utilizes strength to cut down their opponents." attributesperlevel="3" ispublic="true">
    		<leveloneattributes>
    			<attribute name="Strength" amount="8"/>
    			<attribute name="Defense" amount="4"/>
    			<attribute name="Intelligence" amount="2"/>
    			<attribute name="Spirit" amount="3"/>
    			<attribute name="Agility" amount="4"/>
    			<attribute name="Dexterity" amount="8"/>
    		</leveloneattributes>
    		<perlevelattributes>
    			<attribute name="Strength" amount="1"/>
    		</perlevelattributes>
    		<customlevelattributes>
    			<level number="10">
    				<attribute name="Strength" amount="10"/>
    			</level>
    		</customlevelattributes>
    		<leveloneconditions>
    			<condition name="Inspired 1" amount="1"/>
    		</leveloneconditions>
    		<customlevelconditions>
    			<level number="10">
    				<condition name="Inspired 1" amount="-1"/>
    				<condition name="Inspired 2" amount="1"/>
    			</level>
    		</customlevelconditions>
    		<levelonepermissions>
    			<permission name=".mcmmo_fighter"/>
    		</levelonepermissions>
    		<customlevelpermissions>
    			<level number="10">
    				<permission name=".mcmmo_elitefighter"/>
    			</level>
    		</customlevelpermissions>
    		<experienceperlevel levelone="100">
    			<increaseperlevel type="multiplier" amount="1.5"/>
    		</experienceperlevel>
    		<customlevelexperience>
    			<level number="10" amount="10000"/>
    		</customlevelexperience>
    	</class>
    	<class name="Defender" symbol="DEF" description="A soldier more reliant on defense than offense, great for sieges.">
    		<leveloneattributes>
    			<attribute name="Strength" amount="8"/>
    			<attribute name="Defense" amount="4"/>
    			<attribute name="Intelligence" amount="2"/>
    			<attribute name="Spirit" amount="3"/>
    			<attribute name="Agility" amount="4"/>
    			<attribute name="Dexterity" amount="8"/>
    		</leveloneattributes>
    	</class>
    	<class name="Mage" symbol="MAG" description="A high powered character with little defensive abilities.">
    		<leveloneattributes>
    			<attribute name="Strength" amount="8"/>
    			<attribute name="Defense" amount="4"/>
    			<attribute name="Intelligence" amount="2"/>
    			<attribute name="Spirit" amount="3"/>
    			<attribute name="Agility" amount="4"/>
    			<attribute name="Dexterity" amount="8"/>
    		</leveloneattributes>
    	</class>
    	<class name="Priest" symbol="PST" description="A support unit able to heal themselves as well as their party members.">
    		<leveloneattributes>
    			<attribute name="Strength" amount="8"/>
    			<attribute name="Defense" amount="4"/>
    			<attribute name="Intelligence" amount="2"/>
    			<attribute name="Spirit" amount="3"/>
    			<attribute name="Agility" amount="4"/>
    			<attribute name="Dexterity" amount="8"/>
    		</leveloneattributes>
    	</class>
    	<class name="Archer" symbol="PST" description="Able to attack from greater distances, uses mana to enhance their arrows.">
    		<leveloneattributes>
    			<attribute name="Strength" amount="8"/>
    			<attribute name="Defense" amount="4"/>
    			<attribute name="Intelligence" amount="2"/>
    			<attribute name="Spirit" amount="3"/>
    			<attribute name="Agility" amount="4"/>
    			<attribute name="Dexterity" amount="8"/>
    		</leveloneattributes>
    	</class>
    </classes>
    Skills.xml
    Code:
    <skills>
    	<skill name="Poison Dagger" symbol="PSD" description="Poisons a single enemy when you hit">
    		<conditions>
    			<condition name="Poison 1" targetfriends="false" targetfoes="true" trigger="HIT" target="TARGET"/>
    		</conditions>
    		<requirements>
    			<requirement target="class" type="present" value="Fighter">
    		</requirements>
    	</skill>
    	<skill name="Poison Explosion" symbol="PSE" description="Poisons everyone within a 3 block radius">
    		<conditions>
    			<condition name="Poison 1" targetfriends="false" targetfoes="true" trigger="RIGHTCLICK" target="AOE:3"/>
    		</conditions>
    		<requirements>
    			<requirement target="class" type="present" value="Fighter"/>
    			<requirement target="level" type="higherthan" value="5"/>
    			<requirement target="item:redstone" type="consume" value="1"/>
    		</requirements>
    	</skill>
    	<skill name="Inpire Allies" symbol="INA" description="Inspires allies within a 10 block radius">
    		<conditions>
    			<condition name="Inspire 1" targetfriends="true" targetfoes="false" trigger="RIGHTCLICK" target="AOE:10"/>
    		</conditions>
    		<requirements>
    			<requirement target="class" type="present" value="Mage"/>
    			<requirement target="level" type="higherthan" value="5"/>
    			<requirement target="item:diamondsword" type="present" value="1"/>
    		</requirements>
    	</skill>
            <skill name="Warrior Aura" symbol="INA2" description="Inspires allies within a 10 block radius [Passive]">
    		<conditions>
    			<condition name="Inspire 1" targetfriends="true" targetfoes="false"  trigger="CONSTANT" target="AOE:10"/>
    		</conditions>
    		<requirements>
    			<requirement target="class" type="present" value="Fighter"/>
    			<requirement target="level" type="higherthan" value="9"/>
    		</requirements>
    	</skill>
    </skills>
    Notice that this is NOT supposed to be 100% correct or 100% final. This is the examples for concept I've made in order to check how simple/complex a configuration would be. Of course all new installations will come with a default working configuration. The plugin will continue to be "plug and play". If you don't want to spend hours changing these files, you won't need to.

    I still haven't coded the system yet but I'm hoping all this configuration and core attribute processing will be lightweight enough to avoid any lag at all, we're talking for small scale servers (<100 players) anyway.

    I'll keep you guys and gals posted as I move along.
     
  27. Offline

    Aramillio


    there is another bug.

    this is with the teleporting. this is a conflict with bukkit. it will kick you for moving too fast when you go through a rift. I know it is fixable, the Multiverse plugin had the same issue when 818 came out. im sure the author can help you fix it if you need help

    can we get a command to see what world we are currently in?
    and have it display a configurable message when we rift to a new world?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 14, 2016
  28. Offline

    Birdman33573

    Could you make it so the cords of the rift apear on screen when it forms?
    also could you make the two sides connect with permmisons? so when they join a world they join that worlds group? or atleast make something so we can see which players are in which world.
    that would be Awesome! =P
     
    compgurusteve likes this.
  29. Offline

    Redyugi

    Update to craftbukkit 819, and it'll go away completely. I know it's not recommended, but the only real change was the fixing of said bug.
     
  30. Offline

    Aramillio


    Definitely try to fix this or add a spawn command that will take you to your faction's spawn. this bug is particularly annoying when i type /spawn and leave the rift worlds completely
     
  31. Offline

    MoreCheeze77

    So, I'm hosting my server. And at random times, people will keep spawn-dying forever until I delete the database. Both factions are in the same world (I did that.) Do you know how to fix this?
     

Share This Page