Inactive [TP] Wormhole X-Treme - Multi-World Capable Stargates v0.854 [766]

Discussion in 'Inactive/Unsupported Plugins' started by Ben Echols, Jan 24, 2011.

  1. Offline

    Lologarithm

    This is now inactive - http://forums.bukkit.org/threads/tp-wormhole-x-treme-multi-world-capable-stargates-v1-011-953.23973/ is where you can find the currently active developed version.




    Release v0.854 contains the fix to stop the IndexOutOfBoundsException that happens when 3d shapes have no light blocks. Also contains the fix for 2d gate iris levers (they get added properly again). The Wormhole X-Treme Worlds support is for a version of WXW that is still under development, expect things to break badly if you enable it without the proper version of WXW (0.5, which is not released as of yet).

    If this is your first time downloading this please download the zip, it contains the database software we depend upon.
    You are also encouraged to read the changelog and readme. Especially the readme.
    Basic instruction for use and configuration can be found below.

    Major Features:
    • Player teleportation!
    • Multi-world support
    • Permissions integration (As well as some basic built-in permissions)
    • Custom 3d & 2d gate shapes
    • Iris password protection
    • Minecart teleportation
    • Help plugin integration
    About Wormhole Xtreme:

    Get the Source
    Donate to my coffee fund (It helps me code faster!)

    When I first heard about bukkit I knew I wanted to write a plugin. As I always wanted a way to teleport around I thought it would be fun to write a mod that could do this. I thought writing one like the Stargates from Stargate would be cool.

    So I decided I would make my own portal plugin as my first try at bukkit (and really first mod for Minecraft so far).

    So here is my release of Wormhole X-Treme!

    video (open)

    Samkio made a usage video here, it is a touch out of date but the general idea still works:


    Changelog with important entries in bold (open)

    Changes 0.854
    • Updated chunk (un)loading to happen when gate (de)activates and when dial lever state changes happen.
    • Fixed iris levers not being added properly with 2d gates. (Oops, guess that code WAS needed)
    • Fixed IndexOutOfBoundsException on 3d gate shapes without lighting blocks.
    • Hamfisted fix for signs not updating. Now we nuke the sign and build it from scratch every time a gate sign is toggled. Causes a flash, but... who cares. It works EVERY time now.
    Changes 0.853:
    • Fix for /dial gates breaking when a user who doesn't have dialer permission hit the lever.
    • Switched to getTypeId() from getType(), hopefully this works around the getType() == Air bug that might be lingering.
    Changes 0.852:
    • Added support for upcoming Permissions 3.0.x release.
    • Fixed a NPE in 2d shape code dealing with light block positions.
    • Added soft dependencies to plugin.yml.
    • Minor log format changes for readability.
    Changes 0.851:
    • Complete revamp of how we handle permissions checks. Lots more case statements, lots less if/else if. Much better. This is what enums are for.
    • Added new gate use cooldowns. This feature will only work on complex permissions enabled servers. There are three groups you can assign a player to; 'wormhole.cooldown.groupone', 'wormhole.cooldown.grouptwo', and 'wormhole.cooldown.groupthree'. If you have an '*' on any user/group, remember to '-wormhole.cooldown.groupone' etc. There is a new command to enable, disable, and modify cooldowns; 'wormhole cooldown [true|false|group] <time>', valid groups being 'one', 'two', and 'three', valid time being between 15 and 3600 seconds. There are also Settings.txt options for all of these new settings. Cooldowns are set when a player enters a stargate, not when they /dial. Cooldowns are removed via timer events, and even if the timer event fails, we do a fall back calculation when a player enters a stargate, and gets denied access.
    • Added new gate build count restrictions. This feature will only work on complex permissions enabled servers. There are three groups you can assign a player to; 'wormhole.build.groupone', 'wormhole.build.grouptwo', and 'wormhole.build.groupthree'. If you have an '*' on any user/group, remember to '-wormhole.build.groupone' etc. There is a new command to enable, disable, and modify build count restrictions; 'wormhole restrict [true|false|group] <count>', valid groups being 'one', 'two', and 'three', valid count being between 1 and 200. There are also Settings.txt options for all of these new settings.
    • Updated the stargate sign dial sign reset code to be more reliable at causing the client to notice update changes.
    • Added a thrown exception during stargate 3d shape parsing if the shape doesn't have an exit point. We depend on this location for pretty much everything. If it isn't there, really bad bad bad things happen.
    • Now we have more than just Standard as our default shape. We extract Standard, StandardSignDial, Minimal, and MinimalSignDial to the gateShape folder if it is missing shapes.
    • Now we don't toggle stargate signs when we start.
    Changes 0.850:
    • iConomy support removed. I will not depend on plugins that decide to change their package name 5 major versions in and basically give everyone who depended on the package location the middle finger.
    • 3d Gate shapes now implemented.
    • Custom gate settings now in place (read: per gate material settings). This included the re-addition of the portalmaterial and irismaterial commands. lightmaterial, redstone, wooshdepth, and custom commands newly added.
    • Massive internal overhaul, refactorings, cleanups, general goodness and bugfixes.
    • Added support for Wormhole X-Treme Worlds. This allows Wormhole X-Treme to offload its chunk loading and world loading to WXW, for worlds that exist in WXW. Requires user to change Settings.txt option WORLDS_SUPPORT_ENABLED from false to true. This option requires Wormhole X-Treme Worlds v0.5 to be installed, and preferably configured for every existing world populated with stargates. If this option is set to true but WXW is not v0.5 (or not installed), WX will not load its stargates from its database.
    • Removed many superfluous chunk load requests. Added graceful chunk unload queue when we are done with a chunk.
    • Bumped supported version of permissions to include the 2.7 tree.
    • Updated help text for new/modified commands.
    • Added backwards compatibility, for those users who just don't want to upgrade to 3d shapes.
    • Added loads of failsafe settings, for when users don't have any shapes installed, but have stargates already.
    • wxidc now only works on non-sign powered gates which have iris activation blocks set.
    Changes 0.833:
    • Fixed iConomy double(or many many more) charging issue. Tried to do something awesome, turned out to be a bad idea. We'll revisit these kind of changes when 3d shapes are in and I can do some major refactoring and method merges/splits.
    • Bumped supported version of permissions to include the 2.6 tree.
    • Merged some of the sign click schedule related methods. Should make sign click messages more reliable.
    Changes in v0.832:
    • Fixed a NPE in new database initialization. Whoops, missing null-check, added.
    Changes in v0.831:
    • Fixed erroneous messages sent when a plugin is attached to already and WXT receives a plugin event for it. Cosmetic bug, fixed.
    Changes in v0.830:
    • Water now will not flow over Stargate anythings. No more broken levers and magic blocks of water floating in their place.
    • Buckets now will no longer work with stargate anythings. No free water and lava.
    • Minor optimizations and code cleanups.
    • PORTAL_MATERIAL, IRIS_MATERIAL, STARGATE_MATERIAL, ACTIVE_MATERIAL are all part of gate shape now.
      • All configuration values associated with these are gone now.
      • Gate shapes without these default to
        • PORTAL_MATERIAL = STATIONARY_WATER
        • IRIS_MATERIAL = STONE
        • STARGATE_MATERIAL = OBSIDIAN
        • ACTIVE_MATERIAL = GLOWSTONE
    • Updated default gate shapes that come in the zip to include these new values.
      • See gate shape files for more details
    • Removed version 1 DB conversion because new design doesn't allow for it anymore.
      • For users this means if you are upgrading from version 0.3 or less to this version you will need to remake your gates.
    • Fixed NPE in onPlayerInteract caused by event not reporting the block the interact event was associated with.
    • Logic tweak in the find safe teleport code. Should be *safererer*
    • Sign powered stargates now can only target other sign powered stargates.
    • Fixed so that when coming from a lava portal stargate to a non-lava portal stargate fire damage is canceled still. No more nasty fire after a teleport.
    • Added the logic back in to stop people from randomly teleporting when next to the lever of an active gate. The side effect is, when block.getType() fails, gates don't work. Its one or the other.
    • Fixed /wxcomplete permission deny issue with stargates on public networks.
    • Added ICONOMY_OWNER_EXEMPT option to Settings.txt with a default value of true. When true this option disables the charging of gate owners for using their own gates.
    Changed in v0.821:
    • Update version of iConomy we build against and test for.
    • Fix NPE in old non-shape based gates.
    • Added custom StargateTeleportEvent for MinecartMania as we nuke the minecarts before we teleport the player and put them back in the minecart.
    • Refactored package to com.wormhole_xtreme.wormhole in anticipation of adding more stargate related projects.
    Changed in v0.820:
    • Initial support for CraftBukkit Build 600.
    • Got rid of the stupid double error that people got by not reading the readme. Now when we parse settings.txt, if the value is integer for the iconomy settings, we change it to a double by simply dropping a .0 at the end of it. Problem solved.
    • Lots of optimizations to the distance finding method we were using. Also fixes to the gate shape parsing code. (Thanks lirelent)
    • Overhaul of the way we handle permissions internally. More unified approach to the actual permissions checks.
    • Gate block protection should now be compatible with plugins like mcMMO. "Should" being the operating word.
    • Levers now properly move when used and toggle on and off when stargate and iris are activated.
    • All Permissions deny events now log at Level.FINE. Got permissions problems with WXT? Now see what is happening.
    • Optimized fire protection. Now we use timer events that go off 2 seconds after gates close. This way we don't have to listen for fire type events 24/7. :)
    • Fixed teleportation dropping people into very unsafe locations. Now we scan for safe place to drop people, if we can't find one we drop the player in front of the DHD. This will also FIX wormholes by setting the stored teleport location to the new clean and safe location.
    • We now support using the help plugin along with WXT.
    • We now have settings.txt options to hard disable support of iConomy, Permissions, and the help plugin. No longer do we log a warning when unable to find the plugin we depend on. We log at INFO. :p
    • Buttons are no longer really used. If a button exists on a stargate, it will be replaced with a shiny new lever on the first use.
    • Lava stargates are *really* safe to use now. For trees even. Not minecarts though.
    • A whole host of debugging information has been added at Level.FINE. If you can trigger a bug reliably, set yourself to fine and provide the server.log details surrounding the bug. Not recommended for production servers as well... its exceissive.
    • The '/wormhole regenerate' command is partially added. Will regenerate missing activation and iris levers.
    • Minecarts work across chunks and worlds now! If you run into a location where it doesn't work, use the wormhole in both directions to correct the wormhole, then try again. :)
    Changed in v0.812:
    - /wxgo now works properly when traversing world bounderies. First we quickly pop into the default spawn location for the target world, then from there we go to our final destination. It is a hack, but it is a working hack. :)
    - methodized the code to find closest stargates, and find distance from closest stargate blocks as well as the math to find distance.
    - Updated block ignition events to only use proximity style checks. Block ignition event cancellation radius increased to active stargate woosh depth or 4 blocks, which ever is further.
    - Updated '/wxcompass' to use new FindClosestStargate method.
    - Updated onEntityDamage to use only proximity style checks. On active gates a bubble of no fire damage of either woosh_depth or 4 blocks, which ever is larger, is created. On closed gates a bubble of 2 blocks is created to stop fire ticks occuring right as a gate closes. Stopped caring about potential drowning in stargate. If user decides they want to stand in the wrong side of a gate till they drown, that is their choice.
    - Re-added missing CONSTRUCT_NAME_TAKEN error string in ConfigManager. This stops an NPE in 'wxcomplete'.
    - Added support for tkelly's Help plugin. Will generate proper config based on permissions type (simple or complex) or lack of permissions plugin altogether.
    - Refactored the heck out of iConomy and Permissions support. Own classes in a new package to go along with the Help support. Methodized a bunch of useful functions. Less duplicated code.
    - Added some log output for 'wxforce'. Should help combat abuse.
    - Ops are now always able to use 'wxremove'.
    - The '/wormhole simple' command now refreshes Help entries to the proper permissions after being set.

    Changes in v0.811:
    - Came up with a proximity based check for stargates in the lava & fire event
    cancellation code. Now only 3 block radius around active lava portals
    gets its lava & fire events cancelled. STATIONARY_LAVA is safe for players
    to use in portals now. For reals.
    - Version 4.5 of iConomy is now supported and verified as working.
    - Now we actually check for Iris on gate use while in minecart...
    - Back to the good ol kick the player out of the cart and stuff them through
    the stargate method. Doing a bit of a hackish teleport when going between
    worlds as well. We tp to spawn, then instantly to destination. This is only
    when starting the tp while in minecart. If minecart is empty and passing
    into a stargate that will traverse worlds, we kick the minecart back. Otherwise
    it will dissapear into the void.
    - Now we cancel block ignite events on a proximity basis, same way we cancel
    fire and lava events on player. No more trees bursting into flames near a stargate.

    Changes in v0.810:
    - Broke '/wxcompass' out into its own class. Removed '/wormhole compass'.
    - Broke '/wxcomplete' out into its own class. Removed '/wormhole complete'.
    - Broke '/wxidc' out into its own class.
    - Broke '/wxremove' out into its own class. Removed '/wormhole remove'. Fixed so it toggles iris to off state before removing gates with iris active.
    - Broke '/wxlist' out into its own class. Added no permissions error message. Removed from '/wormhole' command.
    - Added command '/wxgo' and broke it out into its own class. Added no permissions error message.Removed from '/wormhole' command.
    - Broke '/dial' out into its own class.
    - Broke '/wxbuild' out into its own class.
    - Broke '/wormhole' out into its own class.
    - Added another message for active gates. Now it will say either remote activated, or activated by someone else already.
    - Added SIMPLE_PERMISSIONS config option. The default value of 'false' makes permissions node settings use complex mode. While the setting of true sets the plugin to check for extremely simplified permissions. Permission node details can be found in the README.
    - Refactored the WXForce class to Force. Hopefully this shuts MSSE up. ^^;
    - Moved a bunch of the initial loading out of onEnable and into onLoad. Now we use onEnable only for events that should only happen at plugin Enable.
    - Updated '/wormhole' command to have more descriptive errors and built in help. Updated help information for this command as well. Command now has unified messaging string headers. Added new 'simple' option to enabling simple permissions while the game is live. Requires the user to have proper permissions node for configuration in target mode. Removed a bunch of duplicated permissions checks. Only one check is needed at beginning of command call now.
    - Revamped readme to reflect important recent plugin package changes.
    - Fire damage, combustion damage, and drown events now canceled in stargate. Now LAVA is really a valid portal material.
    - Creeper explosions are now canceled when they would cause damage to stargates. This will stop signs and buttons from being destroyed during that mad dash to/from a stargate. ^^

    Plugin Commands (open)

    dial:
    description: Dial a remote Stargate, unlock IDC with optional password
    usage: /dial <StarGate> [IDC]
    <stargate> The StarGate to dial.
    [IDC] Use optional password to open remote Iris.

    wormhole:
    description: Wormhole administration and configuration commands.
    usage: /wormhole <commandtype> [ARG1] [ARG2]
    Valid Commands - 'owner', 'perms', 'portalmaterial', 'irismaterial', 'lightmaterial', 'shutdown_timeout', 'activate_timeout', 'simple', 'regenerate', 'redstone', 'wooshdepth', 'cooldown', 'restrict', & 'custom'.

    wxlist:
    description: List all Stargates.
    usage: /wxlist - List all Stargates.

    wxbuild:
    description: Automatically Build Stargate.
    usage: /wxbuild <GateShape>
    <GateShape> The GateShape to build.
    After placing a DHD with a button (and sign if wanted) running this command then pressing the button will cause the specified <GateShape> to be built.

    wxremove:
    description: Remove a stargate, optionally destroy its blocks.
    usage: /wxremove <GateName> [-all]
    <GateName> The GateName to remove.
    [-all] destroys gate blocks too.

    wxcompass:
    description: Point compass needle at nearest Stargate.
    usage: /wxcompass - Point compass needle at nearest Stargate.

    wxcomplete:
    description: Complete StarGate construction.
    usage: /wxcomplete <GateName> idc=[IDC] net=[Net]
    <GateName> The name to give new Stargate.
    [IDC] Optional password to give Stargate.
    [Net] Optional network for Stargate.

    wxidc:
    description: Gets or sets a gates IDC.
    usage: /wxidc <GateName> <optional_set_idc>
    Requires being either owner or have wormhole.config
    set -clear to remove the IDC

    wxforce:
    description: Forcefully shut down all gates and/or open all iris
    usage: /wxforce <close|drop>

    wxgo:
    description: Teleport to specified wormhole.
    usage: /wxgo <GateName>

    Install directions (open)

    New Install:
    1. Download the zip.
    2. Unzip file into same directory that your craftbukkit.jar exists in. This should put the hsqldb.jar into the lib/ folder, the WormholeXTreme.jar into the plugins/ folder, and the latest versions of GateShapes into the plugins/WormholeXTreme/GateShapes/ folder.
    3. Start server
    4. (Optional) Stop the server and edit the newly generated /plugins/WormholeXTreme/settings.txt file as needed.
    5. (Optional) Edit gate shapes in /plugins/WormholeXTreme/GateShapes/
    6. (Optional) If using the Permissions plugin based plugin, set up the appropriate permissions. If using SIMPLE_PERMISSIONS = true remember to use permissions from the Simple Mode list, otherwise use nodes from Complex Node.
    7. (Optional) Start Server again

    Basic use instructions (open)

    Basic Use:
    First off you need to make a stargate. I you can see the design design below - you need the Gate, a Dial Home Device (DHD), and a stone button or lever facing away from the gate on the DHD. The purple blocks are Obsidian, and the Blue has to be air, but will turn to water when the gate is activated.
    basic_stargate_and_dhd.png

    A real example of a constructed gate:
    2011-01-24_01.53.11.png

    You MUST make the gate exactly as it is in the picture.

    Once it is assembled hit the button ( You need to stand at least one block away from the button for the event to trigger. ) and the system will confirm that the stargate is properly made. If you don't see a "wormhole design valid" message you did not create the gate properly.
    If you did see the message, you simply type /wormhole complete <name> to finish and name the gate. A name sign with the gates name should appear on the gate. You can optionally type /wxcomplete <name> <idc=[IDC]> (idc = iris deactivation code, or the code needed to use the gate) - this will make your gate password protected.

    Now if you hit the button again it will "activate" the gate to be dialed.

    To Dial (after hitting the button) you type "/dial <remote_gate_name>" and the gate will open and fill with water! (You can change the portal material by using /wormhole material) The gates currently don't by default timeout after dialing. If the remote gate has an iris code you will need to type "/dial <name> <idc>" to activate the remote gate.

    Hitting the button again from the gate that dialed out will deactivate the gate. Pressing the button on a gate that has been dialed in to will do nothing because you can't activate a gate that is remotely activated. (Tried to keep it just like the show haha).

    Name Sign Dialing (Public Gate System):
    • NOTE: This is an alternate way to BUILD a gate. Currently existing gates will not work by simple placing a sign next to the activation button. You will need to /wormhole remove first and then re-complete the gate using this system.
    • Place a second obsidian "pillar" next to the main DHD and place a sign on it. Put the name of the gate on the top line.
    • Gates with this sign can only be dialed via the sign now. You will only see other gates that have a sign.
    • Gate without a sign can dial IN to a sign gate.
    • AGAIN : If you make a gate without a sign it will NOT be on the list of gates.
    • To cycle through possible gates use right click - Sometimes it takes a click or two for it to work :)
    • See here for sign dialer gate example:
    • 2011-01-25_02.15.31.png
    • Note - unless you have STARGATE_FULL_ACCESS or "wormhole.remove" you will be unable to destroy any blocks that are part of the gate.
    • Networks!
      • If you put any text on the second line of the sign, it will be the "network" the gate is on.
      • You will only be able to dial other gates on the same network as you
      • Currently you cannot change the network, so make sure you type it correctly!
      • By default (if nothing is put on the second line) a gate will be part of the "Public" network.

    Basic configuration settings (open)

    Configuration:
    • All configuration is now stored in a file /plugins/WormholeXTreme/Settings.txt
      • All descriptions of the settings will be found in that file with the settings.
    • You can change some options while the server is running:
      • /wormhole activate_timeout <optional_timeout>
        • This is the length of time after activating but before dialing that the gate deactivates.
        • This does not affect sign dialed gates.
      • /wormhole shutdown_timeout<optional_timeout>
        • Setting to 0 means portal only closes after something goes through, and then immediately closes.
        • This setting is how long after a player dials a gate before the gate shuts down.

    Permissions plugin settings (open)

    Permissions:
    • This plugin works with the Permissions plugin. (Currently 2.5+ Only)
      • Changing the built in permissions will not change the Permissions plugin at all.
    • Without the Permissions plugin you can use the built-in permissions (disabled by default)
    • /wormhole perms - for more information
    • to enable/disable default perms /wormhole perms active <true|false>
    • When built-in permissions are active:
      • Default OPs get all access
      • Default all other users get USE only
    Permissions Plugin Nodes: (Controlled by settings.txt - SIMPLE_PERMISSIONS)
    SIMPLE_PERMISSIONS = false
    Complex Mode:
    wormhole.use.sign - lets a user use sign gates.
    wormhole.use.dialer - lets a user use '/dial' gates
    wormhole.use.compass - lets a user use '/wxcompass' command.
    wormhole.remove.own - lets a user remove a gate that they own
    wormhole.remove.all - lets a user remove any gate
    wormhole.build - Able to build new wormholes
    wormhole.config - Able to configure settings like material and timeout
    wormhole.list - Able to use '/wxlist' command to list wormholes
    wormhole.network.use.NETWORKNAME - Able to use wormholes on NETWORKNAME
    wormhole.network.build.NETWORKNAME - Able to build wormholes on NETWORKNAME
    wormhole.go - allows user to use '/wxgo' command.
    wormhole.build.groupone - Part of build restriction group one.
    wormhole.build.grouptwo - Part of build restriction group two.
    wormhole.build.groupthree - Part of build restriction group three.
    wormhole.cooldown.groupone - Part of wormhole use cooldown group one.
    wormhole.cooldown.grouptwo - Part of wormhole use cooldown group two.
    wormhole.cooldown.groupthree - Part of wormhole use cooldown group three.

    SIMPLE_PERMISSIONS = true
    Simple Mode:
    wormhole.simple.use - Lets a user use wormholes.
    wormhole.simple.build - Lets a user build wormholes.
    wormhole.simple.remove - Lets a user remove wormholes.
    wormhole.simple.config - Lets a user configure WormholeXTreme settings

    Help plugin settings (open)

    Help:
    • Currently there are no configuration options for Help the help plugin. It is just plug and play. If you want to change the help text, you are able to do such via the Help plugin override build into the Help plugin.

    As always please let us know of any bugs! Just remember, some bugs are in vanilla and craftbukkit itself, so we may not be able to address them easily.


    Devs: Lologarithm & alron
     

    Attached Files:

  2. Offline

    desht

    Using the unoffical 0.854-CB935 build? If not, you need to:

    http://dl.dropbox.com/u/12467600/WormholeXTreme-0.854-for-935.jar

    This applies to everyone who wants to use WXT with any newer build. This build fixes the moving too fast problem when teleporting and the IndexOutOfBounds exception on startup.
     
  3. Offline

    Soruyao

    Glad to see this mod working already! I love you guys for continuing to update it. My rp server would literally not exist without it.
     
  4. Offline

    keenick4

    Ok, so I've had this plugin for a while (which is awesome, btw) and i love it. Today I put the new server in (1.7.2) and when i use a wormhole, I get a console error:

    Code:
    [WARNING] keenick4 moved too quickly! Elapsed ticks: 1, Distance change: (Distance Here e.g. 118199.16332829036)
    After the error, my Minecraft window blacks out and i have to close it and restart.
    It was working fine before the update and i didn't change anything. Also, i'm running # 0.854

    Any help would be appreciated.

     
  5. Offline

    desht

    Oh come on, read my post (in extra special large type) 2 posts back :rolleyes:
     
  6. Offline

    wizroul

    Thanks for the help
    could have swarn i updated
    all working fine now :D

    Silly me as always :p
     
  7. Offline

    Redyugi

    @desht , don't expect people to read a few posts back. lol.
    Thanks for that. I am currently downloading Eclispe again, so I might clone your repo, and start from there if I have time tonight. Ever seen a chef with a broken leg cook for 20+ family members?
     
  8. Offline

    keenick4

    Thanks for the help, desht. Im kinda new at this so next time i'll look back a little. :)
     
  9. Offline

    Andon

    Well. I seem to have borked the system somehow.

    Here's what I did: I attempted to make a new shape for interacting with Redstone (See below). It works... ish. I can cycle targets fine (Both manually and with the redstone), but when I go to activate it... It dials, then it just sticks. Stays that way for a while, and then it'll timeout (But oddly, the chevrons will stay lit). I can dial into the gate fine, but out doesn't work.

    Here's the shape file:
    StandardRed.shape (open)
    # The name for this shape
    Name=StandardRed
    # Version 2 of shape files allows for many new things.
    # 3D gates, new format for blocks, woosh and light order etc
    Version=2

    #Reminders Snipped

    GateShape=

    Layer#1


    [I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][S:A][S:D]
    [I][I][I][I][I][S][S]
    [I][I][I][I][I][S][S]

    Layer#2
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]
    [I][RA][I][RS][I][RD][I]
    [I][S][S][S][I][S][I]

    Layer#3=
    [I][I][S][S:L#7][S][I][I][I][I]
    [I][S:L#3][P][P][P][S:L#2][I][I][I]
    [S][P][P][P][P][P][S][I][I]
    [S:L#1][P][P][P][P][P][S:L#6][I][I]
    [S][P][P][P][P][P][S][I][I]
    [I][S:L#4][P][P][P][S:L#5][I][I][I]
    [I][I][S][S:EP][S][I][I][I][I]
    [I][I][I][I][I][I][I][I][I]


    Layer#4=
    [I][I][I][I][I][I][I]
    [I][I][I:W#1][I:W#1][I:W#1][I][I]
    [I][I:W#1][I:W#1][I:W#1][I:W#1][I:W#1][I]
    [I][I:W#1][I:W#1][I:W#1][I:W#1][I:W#1][I]
    [I][I:W#1][I:W#1][I:W#1][I:W#1][I:W#1][I]
    [I][I][I:W#1][I:W#1][I:W#1][I][I]
    [I][I][I][I:EM][I][I][I]
    [I][I][I][I][I][I][I]

    Layer#5=
    [I][I][I][I][I][I][I]
    [I][I][I][I:W#2][I][I][I]
    [I][I][I:W#2][I:W#2][I:W#2][I][I]
    [I][I:W#2][I:W#2][I:W#2][I:W#2][I:W#2][I]
    [I][I][I:W#2][I:W#2][I:W#2][I][I]
    [I][I][I][I:W#2][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]

    Layer#6=
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I:W#3][I][I][I]
    [I][I][I:W#3][I:W#3][I:W#3][I][I]
    [I][I][I][I:W#3][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]
    [I][I][I][I][I][I][I]

    # Number of ticks to wait before activating each # of the woosh. 1 tick = ~50ms
    WOOSH_TICKS = 3;
    # Number of ticks to wait before activating each # of the lights. 1 tick = ~50ms
    LIGHT_TICKS = 2;

    # None of the follow materials are required, they will default if not set.
    # Portal material the material the [P] blocks will be when gate is active.
    # Suggested values are as follows: STATIONARY_WATER, STATIONARY_LAVA, PORTAL, and AIR
    PORTAL_MATERIAL=STATIONARY_WATER

    # Iris material is the material the [P] block become when iris is active
    # Suggested values are as follows: STONE, DIAMOND_BLOCK, GLASS, IRON_BLOCK, BEDROCK, OBSIDIAN, GLOWSTONE and LAPIS_BLOCK
    IRIS_MATERIAL=STONE

    # Stargate material is the material the [O] blocks are made of
    # Reasonable values are as follows: STONE, DIAMOND_BLOCK, GLASS, IRON_BLOCK, BEDROCK, OBSIDIAN, GLOWSTONE and LAPIS_BLOCK
    STARGATE_MATERIAL=OBSIDIAN

    # Active material is the material that :L blocks become when gate is active
    # Suggested Values are as follows: GLOWSTONE and GLOWING_REDSTONE_ORE
    ACTIVE_MATERIAL=GLOWSTONE

    # Redstone activated is the parameter to allow redstone to/from redstone locations.
    REDSTONE_ACTIVATED=TRUE[/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/S][/I][/S][/S][/S][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I]
    [I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][S][S][I][I][I][I][I][S][S][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][S][S][S][I][S][I][I][I][S][S][I][I][I][I][I][I][I][I][S][S][I][I][I][I][S][S][I][I][I][I][I][I][I][I][S][S][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I][I]

    I then get this in the server return (Started it up, then ONLY did the attempted activation)
    [spoiler=Server Log]
    151 recipes
    16 achievements
    23:25:20 [INFO] Starting minecraft server version Beta 1.7.2
    23:25:20 [INFO] Loading properties
    23:25:20 [INFO] Starting Minecraft server on *:25566
    23:25:20 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-904-g9277096-b953jnks (MC: 1.7.2)
    23:25:21 [INFO] [WormholeXTreme][v0.9] Loading WormholeXTreme ...
    23:25:21 [INFO] [WormholeXTreme][v0.9] Load Completed.
    23:25:21 [INFO] Preparing level "world"
    23:25:21 [INFO] Preparing start region for level 0 (Seed: -8391530409580249862)
    23:25:22 [INFO] Preparing start region for level 1 (Seed: -8391530409580249862)
    23:25:22 [INFO] Preparing spawn area: 85%
    23:25:23 [INFO] Loaded Essentials build 2.4.1 by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology
    23:25:23 [INFO] Loaded EssentialsSpawn build 2.4.1 by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology
    23:25:23 [INFO] Loaded EssentialsChat build 2.4.1 by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology
    23:25:23 [INFO] Loaded EssentialsProtect build 2.4.1 by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology
    23:25:23 [INFO] [WormholeXTreme][v0.9] Enable Beginning.
    23:25:23 [INFO] [WormholeXTreme][v0.9] Wormhole Worlds support disabled in settings.txt, loading stargates and worlds ourself.
    23:25:23 [INFO] [WormholeXTreme] 3 Wormholes loaded from WormholeDB.
    23:25:23 [INFO] [WormholeXTreme] Permission Plugin not yet available. Defaulting to built-in permissions until Permissions is loaded.
    23:25:23 [INFO] [WormholeXTreme] Help Plugin not yet available - there will be no Help integration until loaded.
    23:25:23 [INFO] [WormholeXTreme][v0.9] Enable Completed.
    23:25:23 [INFO] Done (0.159s)! For help, type "help" or "?"
    23:25:37 [INFO] AndonRT [/127.0.0.1:48893] logged in with entity id 92 at ([world] 141.84375, 94.0, 63.28125)
    23:25:37 [WARNING] Missing a prefix or suffix for default
    23:25:59 [SEVERE] Could not pass event REDSTONE_CHANGE to WormholeXTreme
    java.lang.NullPointerException
    at de.luricos.bukkit.WormholeXTreme.Wormhole.model.Stargate.dialStargate(Stargate.java:402)
    at de.luricos.bukkit.WormholeXTreme.Wormhole.listeners.WormholeXTremeRedstoneListener.onBlockRedstoneChange(WormholeXTremeRedstoneListener.java:96)
    at org.bukkit.plugin.java.JavaPluginLoader$33.execute(JavaPluginLoader.java:469)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:321)
    at net.minecraft.server.BlockRedstoneWire.a(BlockRedstoneWire.java:110)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:41)
    at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:286)
    at net.minecraft.server.World.k(World.java:451)
    at net.minecraft.server.World.applyPhysics(World.java:431)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:49)
    at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:286)
    at net.minecraft.server.World.k(World.java:451)
    at net.minecraft.server.World.applyPhysics(World.java:431)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:49)
    at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:286)
    at net.minecraft.server.World.k(World.java:451)
    at net.minecraft.server.World.applyPhysics(World.java:431)
    at net.minecraft.server.World.update(World.java:399)
    at net.minecraft.server.World.setTypeIdAndData(World.java:383)
    at net.minecraft.server.BlockRedstoneTorch.a(BlockRedstoneTorch.java:142)
    at net.minecraft.server.World.a(World.java:1965)
    at net.minecraft.server.World.doTick(World.java:1705)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:441)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)[/spoiler]

    Is it an issue with my shape, or something else?[/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/S][/I][/S][/S][/S][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/I][/S][/S][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I]
     
  10. Offline

    Redyugi

    @lycano has taken up the plugin, so I guess I am done here. He hasn't talked to me about it, and I am assuming not to @desht either. Good to know there are many people working on it, although not together which would be efficient but...
    Here is the link
     
  11. Offline

    Andon

    Thanks. Posted in the proper thread, then. Also, I seem to have managed to completely bork the BBCode in this thread, too.
     
  12. Offline

    lycano

    @Redyugi @desht sry for making this just brieaf but i have been working on this a long time and didnt checked this thread first. I was offered by a good friend of alron to take over Wormhole XTreme plugins, so i just did without checking. Wormhole XTreme Spawn is in queue but didnt checked it cause main functionality is Wxw and Wxt.

    I apreaciate your work in this but i doubt that one of you did fixed the static usage issues and just make it to work like i did at first by moving stuff from onLoad() to onEnable(). No offence, just a guess. Testing was done and it was needed to refactor many methods and static callers to normal class calls. I also removed h2sql and replaced it with sqlite thus it is not needed for just storing some gate names and simple data in h2sql data fromat. Plus sqlite is embedded in bukkit. Mysql support will come soon. Maybe before or after refactoring and code optimizations.

    Furthermore wxt tend to work fine for a couple of hours but then failed at a certain point this should be fixed now cause the core methods who are playing around with the scheduler are replaced.

    Also Wormhole XTreme Worlds was not playing correctly with WXT this is fixed also. You can see the changelogs what else changed in background like Skylands support added on my github.

    Last but not least i have put those plugins to my jenkins and artifactory for public access. If you had in mind to change features of Wxt or Wxw please let me know im intreseted in your fixes! And maybe we all can continue this together after refactoring.

    And sry for not checking this thread first. Didnt know that some ppl tried to continue the work.

    Regards Lycano
     
  13. Offline

    Mr.Squeak

    Thank you lycano and others, Redyugi congratulations and get well but you had little impact as predicted. No disrespect meant.
     
  14. Offline

    flames

    @Mr.Squeak this is not a nice post. Redyugi did at least more than you. i know, lycano is working on that for a while now, wxt is a huge plugin, a lot of code to refactor. so please edit your post.
     
  15. Offline

    Shamgar

    Well, I appreciate what you're trying to accomlpish Lycano, but honestly, those are some pretty major changes all happening at once. If you're going to make large changes, you should really do them incrementally and make sure that each one has a solid upgrade path, and release them over time so they can be tested individually. I for one am really not interested in fighting through such a major shift. I can't imagine a world with a lot of gates/connections trying to make that work.

    @desht, I wonder if you'd be interested in forking the project, and perhaps continuing to keep the current piece working. I'm sure I'm not alone in this - is there anyone else who prefers a gradual set of incremental improvements rather than sudden radical implementation changes? Anyone else who would prefer to see the existing plugin continue development along such a path?
     
  16. Offline

    Reterg

    Yeah, I think a way to convert the existing gate locations to the new SQL lite database would have been handy.
     
  17. Offline

    lycano

    @Shamgar well this had to be done and there is no way of converting a database that will no longer be supported. I.e. when you drop h2sql support how can you convert it automatically? Shure i could have implemented a backend for h2sql support to switch later on but this would mean i had to delay this longer than i wanted to. I wanted the plugin alive and working now so i had to make a decision.

    As this plugin seased to function with 860> i saw no point in keeping support in this for the new release. Furthermore i didnt expect that a huge amount of ppl have tons of Stargates lets say 100. You can easily rebuild a stargate by simply removing the Sign from the stone and replacing it with the Name. Then just hit the lever twice and you are done.

    Shure this is at first work but who asks me how long i did worked on this project? What do you think how long it has been taken and will take to make this plugin performant and stable to use and implement a complete new command interface?

    Well why i had to drop h2sql is because Mysql support is on the way and moving from sqlite to mysql is very easy. Plus sqlite is implemented along with mysql (ebeans) natively in bukkit.

    So why didnt you just asked why i had to drop it instead of telling me what i have to do without even knowing what my plans are?

    Of course you can fork the project on github but stay away from publishing your releases in public. That means exactly dont publish it here in the forums. I dont give any permission to fork AND release it in public here on the forums because i would have to deal with your ppl downloading this stuff and posting stuff in my thread that dont even was produced by my release.

    You can build your own version if you like but ill give no support for custom builds. If you have any problems you are on your own. Plus in that time you are trying to build your own version you would have rebuild your stargates! Just think about this twice before attacking someone.
     
  18. Offline

    NightKev

    They can just fork the original instead of yours then.

    Also, dropping support for h2sql is fine, but it makes sense to keep implementing it for a short while to provide a conversion option for people who are updating. Just suddenly dropping it and saying "do it manually" is rather rude, especially to anyone who has a lot of gates on their server.
     
  19. Offline

    bk1138

    At the very least, it would be decent to include notes on *how* to do the manual steps -- not everyone is versed in SQL of any flavor.
     
  20. Offline

    lycano

    @bk1138 you and NightKev didnt got the point ... if you have less then 50 Gates you are faster by reacreating them than install a program .. do manual conversion .. test if everything works well. This is only one minor reset that will not happen when switching to mysql but as again was necessary. Gate names are still available on the gate itself so you dont loose anything! Plus you can simply teleport to those locations via coordiantes or warps. So many posibilities.
     
  21. Offline

    Redyugi

    Please don't tell people not to fork it. Otherwise, you need to take down your thread, as it is a fork. Don't be such a douche about things. I know you have your opinion on things, but everyone has their own opinions. If they want to have it do <insert whatever>, then let them. That is the whole point of open source.
     
  22. Offline

    neromir

    I realize that you've already stated your opinion, but I'm going to give mine as well.

    Frankly, dropping support for existing gates and forcing people to recreate gates from scratch is unacceptable to me from a usability standpoint. I understand that you want to move to sqllite and MySQL, which is all well and good, but you're essentially creating a maintenance nightmare for almost everyone who uses this plugin. Also, I understand you spent a large amount of time upgrading and whatnot, but would it really take you all that long to put hsqldb back into the project for the purpose of simply reading existing gate files and then importing the data as read into sqllite?

    Granted, it's your prerogative to do what you want with your fork, but think about the man-hours you're costing by doing this; anybody who has over 20ish gates on their server is going to spend a ridiculous amount of time going around and recreating them all.

    And if I don't have the coordinates of all of the gates on my server? I can't use /wxgo anymore, since the gates are not recognized by the new version. I don't have warp points or other teleporting plugins because that's the role that WXT filled.
     
  23. Offline

    NightKev

    Running a quick conversion script takes longer than manually resetting 50 gates that might be spread across multiple large worlds? Um...
     
  24. Offline

    Redyugi

    That's my thought. The move from H2SQL to SQLite should have been gradual. I am actually thinking about continuing my fork, and actually work with the users, and all that. It's all fine that he ignored this thread and the people who were helping, and the people that needed help, but he shouldn't be forcing users to completely start over.

    But guys, unless (until?) I get a fork out, leave this thread to die, and post bugs and such on his thread. If anyone wants to help me with it, message me, but until then, use deshts version if you keep using this thread. I won't help with bugs if it's from lycano's.
     
  25. Offline

    pachex

    ...How is that different than what you have done?
     
  26. Offline

    CuZnDragon

    I am sorry to tell you but code is released under the GNU GPL so you cannot tell him he can't publish his releases in public. You don't have the rights to do so in fact if you try to do so it can actually revokes your right to use the code. So you can't tell him he can't release his code publicly. He may have to change the name but you have no right to take away his right to modify and publish the code. Just like you have to publish your modified code under GNU GPL unless the original author gives you a different license as your code is a derivative of the original code.

    That also means you have to give or make available your source code to anyone that asks as you have publicly released your modified version
     
  27. Offline

    but2002

    @CuZnDragon You said it! If the original author didn't want his code to be freely used, it would not be open source.
     
  28. Offline

    CuZnDragon

    I hope you are not going to make mysql mandatory.
     
  29. Offline

    Mentioum

    People should realize @lycano hasn't done anything wrong. Of course you are free to go to a new thread and make your own fork. I for one trust @lycano as I have worked through several bugs with him. I'm all for them taking it over if it means reliable and consistent plugin development and support.

    Less bashing for another dev who tbh is just doing a good job. If you want to do your own fork and do a good job -> go for it -> that... as so many have already stated is what is so wonderful about open source.

    Also this was written over in the other thread for those who are interested:

    Ok, after some digging, here's the solution for migrating all your old gates into the new sqlite database. You need to do three things. (These instructions are for a Linux server with sqlite3 installed. These also assume you know a thing or two. Don't be stupid.)

    1. Open WormholeXTremeDB.script in your favorite text editor. The bulk of the file should be the SQL statements for inserting your gates into the Stargates table. In each INSERT statement, see the field that has a huge long hexadecimal number enclosed in quotes? Before the first quote of that number, insert an X. This tells sqlite that the number following is in Binary.

    2. Then, at the end of the statement, add a semi-colon.

    So, each INSERT statement should end up looking something like this:

    Code:
    INSERT INTO STARGATES VALUES(117,'spiderspawn',X'080000005f000000270000010c0000005f000000260000010c0000000000000000000000004057a0000000000040430000000000004070a8000000000000000000000000004057a0000000000000000000000000004070b80000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00ffffffffffffffff00000004574553540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000050000005f000000270000010c0000005e000000250000010a0000005f000000270000010b0000005f000000260000010b0000005f000000260000010c000000020000005e000000270000010a0000005e000000260000010a0000000200000000000000010000005e000000250000010a0000000400000000000000010000005e000000260000010a000000010000005e000000270000010a000000010000005e000000280000010a','Public',-1850070600088680807,'world','NORMAL','null_ptr1','Minimal');
    
    3. Open the new WormholeXtremeDB sqlite database using sqlite3, and paste in each INSERT statement. You may have to hit enter, depending on how you pasted.

    Restart/reload the server plugins, do a /wxlist to make sure everything is in there, and you should be all set! :D

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 18, 2016
  30. Offline

    Redyugi

    You know half the server admins are Windows users who are like <18 and have never heard of Linux?
     
  31. Offline

    but2002

    That makes me feel out of place. I'm 19 and have known how to use Linux since I was about 12
     
    Mentioum likes this.

Share This Page