Inactive [TP] PrivateWarp 1.7.4 - Private Warping suite [1.4.4-R0.1]+

Discussion in 'Inactive/Unsupported Plugins' started by The_Wrecker, Jan 14, 2011.

  1. Offline

    The_Wrecker

    PrivateWarp - The Private Warping plugin

    Warping since Dec 2010 ! Proven to last.
    Current Version: v1.7.4
    Download PrivateWarp
    Download PluginControl (v1.2.8)
    Compatible with:
    Tekkit (1.3.2) (Bukkit for minecraft 1.2.5)
    Bukkit 1.3.2-r1.0
    Bukkit 1.4.4-r0.1
    Other stuff:
    Download Waypoint Converter (to convert and maintain warp files)
    Download Full zip (Including PublicWarp 0.65!)
    Current, all downloads page (Includes instruction videos)

    I made one of the apps I have compatible with the format.
    It's a gui which lets you peak inside of the private warp files. Some parts are not yet finished, might not finish it completely, but you'll have a way to get the contents.
    Download here: GUI Editor

    Converter:
    The converter can read your waypoints.txt (former hmod plugin) and create PrivateWarp database files. Those database files can be copied/moved to the privatewarp player directory to once again have your old warps back.
    PrivateWarp:
    You can use my plugin to create private warps. Every player can have his or her own set of warps. You can also set categories so you can divide your warps in a logical list. For example: you can list builds other people have built in a separate category (ie "Other_Builds).
    PluginControl:
    The PrivateWarp plugin has a dependency with PluginControl. PluginControl is a plugin which handles not only permissions, but also plugin configuration (flatfile) based on groups. PrivateWarp now has per group based limitations (maxwarp and so on). This is not another Permissions system since it can use multiple Permission systems.

    This plugin has also been ported from the hmod mod. You can find the old thread here: hmod forum. The old plugin can still be used as a Canary plugin, you can find the link in the Canary forums. The plugin is also mentioned on my website here: Wrecker Technologies.

    Supported Permissions:
    -PEX
    -Essentials
    -Vault (support for bPermissions and several others indirectly)
    -Built-in permission system (Groups.txt, built in PluginControl)

    Features:
    • Ability to create personal private warps
    • Divide your warps into categories
    • Admin can access other warps through the /pwa command
    • A vault system with the /pwv command
    • Some other stuff not yet mentioned
    • Limit the amount of warps a user in a group can have
    • Group manager compatible
    • Permissions compatible
    • Built in fall back permission system
    Commandlist (in chat):
    • /pw
      Display your currently set private warps and categories. Only displays warps in the current category selected.
    • /pw set <name>
      Set/add/overwrite a private warp in your selected category
    • /pw del <name>
      Delete a private warp in your selected category
    • /pw goto <name>
      Use the warp , goto the location where you have set it (warp has to exist)
    • /pw catselect <name>
      Select the category (has to exist). Leave empty to return to default
    • /pw catcreate <name>
      Create categorie with given name
    • /pw catdelete <name>
      Delete the categorie (including the underlying private warps)
    • /pw help
      Displays usage and commands
    • /pwa
      All the commands of /pw except you can pretend to be another player. For example /pwa <name> set home. Sets the warp home to the player <name>. Should be an admin/mod command on most servers.
    • /pwv
      An admin can create a template(or set) of warp categories and names. These cannot be used(del, set) by the players. An admin can set a warp in the template to a player which the player can use. Should be an admin/mod command on most servers.
    • /pwv put "player" "warp"
      Set the templated warp to the player
    • /pwv rem "player" "warp"
      Removes the warp from the player
    The rest of the commands for /pwv are the same as /pw except they don't store any coordinates and it functions as a template for the vault system.

    • /pwr <nr>
      Recall previous used warps. Start at 0 (0 is the most recent)
    Configuration:

    Locations:
    Configuration of the plugin(s) is done in the PluginControl data directory.
    For example:
    • bukkit/plugins/PluginControl/PrivateWarp/<groupname> (properties for that group)
    Following 2 files are only there when the built-in permission fallback is used:

    bukkit/plugins/PluginControl/
    • Users.txt contains the users
      A user is defined like so: The_Wrecker=admingroup
    • Groups.txt contains the groups (first line is the default group)
      A group is defined like so: admingroup=pw;pwa;pwv <- changed due to onCommand()
      A new line is for another group or user.
    Permissions nodes :
    • PrivateWarp.pw
    • PrivateWarp.pwa
    • PrivateWarp.pwv
    • PrivateWarp.pwr
    Configuration file:

    Private warp configuration file (under the PluginControl data directory)
    • max_warp=10 Maximum of total warps
    • max_categories=3 Maximum categories a player can create
    • max_warp_categorie=3 Maximum warps in a category (excluded the main/default category)
    • max_cache_minute_timeout=30 Amount of time data is considered useless (0 not ecommended)
    • cleanup_cache_minute_timeout=5 Amount of time between cleanup runs (0 not recommended)
    • Warp_timeout // configurable timeout before warping
    Todo (featurelist)
    • DynamicMap warplocations
    • Sharing warps with other players (/pws)
    • TimeStamping warps (create/modified)
    • Add comments/descriptions to warps
    • Data dir cleanup (--fixed useles creation of files, just needs a cleanup run)
    • Initial starting warp list (a list you get when you first enter the server)
    • Calculate distance to a warp from current position (possibly including height)
    • Changing on the fly config with a new plugin
    • Zones where warps cannot be set (PluginControl feature actually)
    • Cool down function for commands (suggestion from ethood1999)
    • Warp maintenance tool
    • Fix up warp count versus vault warps (partly coded)
    • Add fully qualified warp names (category/warp) Suggested by Ture
    • Warpname Template
    • Redo configuration (add warmup message)
    Having problems?
    try this:
    Loading error 1
    Loading error 2
    Try to pay attention to what the log says when starting Bukkit. Might contain some important hints.


    Changelog:

    Version 1.7.4 RC
    • Built against 1.4.4 R0.1
    • Fix when using /pwa (out of bounds error in thread)
    Version 1.7.1 RC
    Missing some versions because those were officially released as unstable. Below changes sums up some of the changes.
    • Built against 1.2.5 R0.1
    • Upgraded permission detection (direct support, PEX and Essentials)
    • Vault Support
    • Message that you'll warp when using a warmup - timeout
    • Some internal structure changes
    Changelog (open)


    Version 1.6.4 RC
    • Built against Bukkit 1370
    • Use of new Event system
    • Beware of Permission systems (I expect a few problems due to changes/breaking of the other plugins)
    Version 1.6.3
    Does not exist (skipped)

    Version 1.6.2
    • Fix to get material type from block
    • A way to force the built-in permission system regardless of other systems installed (checks for existance of groups.txt under the PluginControl directory)
    Version 1.6.1
    • Built against #1578 for 1.0.1 support
    • JDK7 support update
    • Fix for the race condition when warping/teleporting
    Version 1.6.0
    • Fixed crash due to multi byte character reading
    • Added multithreading for every command passed through PluginControl (Meaning the whole set of commands currently available for PrivateWarp)
    • Fixed the error message when you have no rights to use the command
    • Java JRE 7 supported
    • Updated building path to create new Jar
    • Better code to read configuration property readings
    • Support for Permissions updated (bPermission, PermissionEx, SuperPerms)
    • New detection system to detect Permissions (1.5.1 fix)
    • Splitted code for handling commands
    • Player cache managing code reorganized
    • Better file handling (should disable the creation of empty PrivateWarp files)
    • Removed seperate quick and dirty warmup code
    • Refactored AbstractPlugin OO layer
    Version 1.4.9 > 1.5.0
    • Fixed default warping timeout
    • Fixed bug where warpname was passed to permissions
    • Added softdepend loading to yml
    Version 1.4.8 > 1.4.9
    • Added warping delay (default 5 seconds, adjustable in config)
    • Added rename command (/pw ren <old> <new>)
    • Added move command (move warp to another category /pw mv <warp> <cat>)
    • Added shorter aliases for known commands (see help)
    • Refactored the code base a bit for future changes
    • Built against CraftBukkit 953 (minecraft 1.7.2)
    Version 1.4.7 > 1.4.8
    • Added configbit to config files
    • Built against CraftBukkit 818 (minecraft 1.6.6)
    Version 1.4.6 > 1.4.7
    • Fix on help sub command
    • Check for blocks before warping
    • Check alternative warp location
    • Warn and notices when your warp is not quite right (warping yourself half into a step stone for ex.)
    Version 1.4.5 > 1.4.6
    • Updates towards the latest Bukkit releases
    • Fix for built-in permissions (AGAIN!)
    • Smarter cache system
    • Update for Public Warp
    Version 1.4.4 > 1.4.5
    • Updates towards the latest Bukkit releases
    • Fix for built-in permissions
    • Added Essentials Group Manager plugin
    Version 1.4.2a > 1.4.4
    • Updates towards the latest Bukkit releases
    • Still has a known issue with built-in permission system (PluginControl)
    • Seems Bukkit changed the way namespacing works... This threw errors around (IllegalAccess Exceptions)
    Version 1.4.1 > 1.4.2a
    • Built with PluginControl(0.52a)
    • /pwr change
    • Recommended build #602 update and fixes
    • Previous release is revoked(1.4.2), hence the added 'a' in this release.
    Version 1.4.0 > 1.4.1
    • Built with PluginControl(0.51)
    • Fixed /pwv put command
    Version 1.3.9 > 1.4.0
    • Built with PluginControl(0.5)
    • Changed the way how the plugin(s) output text
    • PublicWarp might be independent now
    • Removed the default_world check
    • Removed Warp converting from old PrivateWarp version
    • Did an auto updating page (see link previous versions)
    Version 1.3.8 > 1.3.9
    • Built with PluginControl(0.49)
    • Compatability update for build 522
    Version 1.3.7 > 1.3.8
    • Built with PluginControl(0.48)
    • Nothing special added or fixed for PW
    • Support for PublicWarp (test-released plugin)
    Version 1.3.6 > 1.3.7
    • Built with PluginControl(0.47)
    • Fixed null when no default group in fallback
    • Added GroupManager support
    Version 1.3.5 > 1.3.6
    • Built with PluginControl(0.46)
    • Lazy warpname matching in goto subcommand
    • Code cleanup (mainly init stuff)
    Version 1.3.4 > 1.3.5
    • Built with PluginControl(0.45)
    • Update to use Phoenix permissions 2.4
    • Constructor fix
    • Shifted to onCommand
    Version 1.3.3 > 1.3.4
    • Built with PluginControl(0.44)
    • Less IO
    • Fix to /pwv put command
    • HACKY FIX considering the constructor stuff, but works for now.
    Version 1.3.2 > 1.3.3
    • Built with PluginControl(0.43)
    • Added /pwr to help
    • Redid some logging
    • Only show conversion log when it's 'interesting'
    • Teleport hook code for pwr (probably not yet functional)
    • Some more minor fixes
    Version 1.3.1 > 1.3.2
    • Built with PluginControl(0.42)
    • MAJOR Fixes to the plugin loading thing (I hope I got it nailed this time, I haven't seen errors while testing).
    • MultiWorld!!! (For conversion to new format add: "default_world=<world_name>" in config. The Plugin will ask you to do this.)
    Version 1.3.0 > 1.3.1
    • Built with PluginControl(0.41)
    • Added /pwr command
    Version 1.2.9 > 1.3.0
    • Built with PluginControl(0.4)
    • Made calls to Nijikokun's permission static
    Version 1.2.8 > 1.2.9
    • Built with PluginControl(0.3)
    • Code for Nijikokun Permissions through PluginControl
    • Fallback to basic mode when plugin can't be loaded somehow (which was the case for me)
    Version 1.2.7 > 1.2.8
    • Built with PluginControl(0.2)
    • Removed a potential memory leak
    • Better handling when dependency is not found
    Version 1.2.6 > 1.2.7
    • Added permissions with PluginControl(0.1)
    • Per group based limitations
    • /pwv, /pwa available again
    Version *.*.* > 1.2.6
    • Removed the /pwa and /pwv command (temporarily)
     
    findus1994 and DoomLord like this.
  2. Offline

    d3x

    Permission 2.0, I tried PW 1.3.1 and 1.3.0 not sure what bukkit I was running I usually update once a day. I also tried 'privatewarp.pw' and 'PrivateWarp.pw' in permissions and still got the no permission error.
     
  3. Offline

    The_Wrecker

    Aha, I haven't updated permissions. I still use 1.9... That is most likely the problem (I think).

    Bukkit please, built in permission/rights system management [​IMG]...

    I'll try to fix up a new version, but don't have that much time this evening... Probably will be tomorrow. Assuming that it's a version conflict.
     
  4. Offline

    ledhead900

    I dunno

    Wrecker its working fine with permissions for me
    using 2.0 of Niji has since your last build.

    and yea your /pwr does not work nor show up in /pw I check console im running 1.3.1
     
  5. Offline

    TnT

    Will do. Thanks for that.

    I may try out the new version then, without permission. I agree, a centralized permission system is the way to go. I do not agree that the Permissions plugin should be that central source (I'll just leave it at that). We need built in permissions. My community is small enough I can run without it, even though it does cause us some pain points.
     
  6. Offline

    d3x

    Are you usinig PW Classic?
     
  7. Offline

    The_Wrecker

    No he probably isn't. Classic does not work with Permissions. Plus the classic is at version 1.2.6 (recompiled).

    So basically: Classic == Old version
     
  8. Offline

    d3x

    Yes but Classic would work with Permissions 2.0 he he could just not realize it works without it.
     
  9. Offline

    The_Wrecker

    I heard about the option to set it up with the commands... maybe that's what you mean. Than yes you are right, classic can/could work.

    Btw:
    It could be that /pwr is not listed in the help of pw. It's possible I didn't add it in there (no biggy, it's just text).

    I had it working though. Syntax in chat is /pwr 0 /pwr 1 /pwr 2 etc.

    edit:
    I just tested it locally and it worked....
    With * and with: 'PrivateWarp.pwr' in the config.yml of permissions.

    I reuploaded the jar's I had to my server to be sure, although I expect them to be the same (sure looked like they were). You should download both of the plugins though if you didn't (PluginControl and PrivateWarp) because I haven't separated the building process yet. They are built against each other.

    I'll be doing some more coding tomorrow (for this plugin I mean), had a busy day... But I hope the command problem gets resolved.
     
  10. Offline

    d3x

    Can I get zips of your working PrivateWarps folder and PluginControl folders? It is still not working for me and I just updated bukkit and all the plugins.
     
  11. Offline

    FuzzeWuzze

    When i started yesterday it worked fine, now when i try to start my server after updating bukkit to 373 i get an error along the lines of

    [Severe]PluginControl can not find a dependancy
    PluginControl has loaded

    But none of the commands do anything...
     
  12. Offline

    ledhead900

    Alright I see my issue it seems your plugin has a bit of a cry if you don't use Capitals like PriavateWarps.

    I still did not see why it would not work I mean Im admin wiht '*' so .... and OP... Strange thing was it did not even relay a command tried to be used in console. I did download Both just to be sure.

    Will try again with the newer craftbukkit.
    --- merged: Feb 9, 2011 8:10 AM ---
    Oh yea and if your having an issue with multiworld- bukkit team decided to change world 0 normal to world 1 and Nether to world 0.
     
  13. Offline

    The_Wrecker

    I still have to build against the updated stuff. I guess I could zip up those folders for you.
     
  14. Offline

    ledhead900

    ROFL *megafacepalm* I had pwr set to essentials.pwr in permission not PrivateWarp.pwr. Must have been since I was testing about 5 builds last night of essentials and it stuck in my brain.
    --- merged: Feb 9, 2011 1:37 PM ---
    How do u use /pwr anyway for me It just says Recall warp not loaded

    when I do /pwr 1

    It has no help eaither thats a shame.
     
  15. Offline

    The_Wrecker

    Oh, wow. So it works now. I'm glad you figured it out. I know what it's like when you keep overlooking something...

    Owk to use the recall function you first have to travel to one of your warps. While you do this it keeps a history of warps you travelled to (in the player cache).
    Say you have a 'home' and 'mine' warp. You travel to home and after that to mine. When I'm right those two should now be in the recall list like so:

    1 - 'home'
    0 - 'mine'

    When you travel to for example the town shop after that. It would be:
    2 - 'home'
    1 - 'mine'
    0 - 'townshop'

    You can set the history amount(amount of warps) in the PrivateWarp settings (PluginControl /PrivateWarp/<group>). I added a property for this specific thing, should be filled in with the default when you use it. I think default is something like 3 or 5 (not sure anymore what it exactly was, but it is limited).
     
  16. Offline

    ledhead900

    Sure thing nice.

    Tho it not function as I exptexted I was hoping that pwr would remeber the warp no matter if u warped to one or two warps.

    Essentials I wanted pwr so I could say TP to someone or another town using a different warp plugin
    and then /pwr back

    for this to work it has to do the following

    Player does /pw goto home
    home is set in recall
    Player does some other funky command goes off wondering
    Player wishes return does /pwr 0
    --- merged: Feb 9, 2011 5:55 PM ---
    Don't me wrong its nice that way too It probably already does remember singlewarps I just did not know u could pwr 0 I thought it was 1.
     
  17. Offline

    The_Wrecker

    Aha, so I maybe could hook into the commands of the other plugin, keep the functionality, but save the current location and save it in the history.

    Could be a nice one to figure out...
     
  18. Offline

    ledhead900

    Do you have to hook into to other commands why can't you just make pwr remeber your last location and recall it if its the only one.

    It should not matter if I use different pluginc ommand to go elsewhere the end of the day simply just want to /pwr back to the spot I was at with out going thru bunch of pw warps lol.

    the foundation is now there now u just need to get it to set SINGLE pw goto warps into recall 0.
     
  19. Offline

    The_Wrecker

    @ledhead900

    I'm wondering if we mean/talking the same thing.
    I'll try to explain why I should hook into other commands. In code, I have no way of knowing when you warped(without the use of PW) or when you just moved (apart from the distance). It would mean I would have to poll to check where you are. The only way I could know for sure you used for example /tp is when i intercept the call and relay it again. I could look into the message or inter plugin communication to see if that would suffice, but in technical terms it stays a trigger for an action.

    There is one thing though, it might be possible to hook into the API teleport method. If that is possible the hooks to those other plugins are not necessary. I'm not sure if it's possible, I should look that up in the api. Would be the way to go, I agree to that.

    /pwr 0 always contains the most recent warp you have been to though. I hope you knew that. /pwr 1 is the second most recent /pwr 3 the third and so on.
    --- merged: Feb 9, 2011 9:12 PM ---
    Did some multi world coding. Need to do some tests before I make up my mind about how to save it.
     
  20. Offline

    ledhead900

    ah well no issues then really, I Thought for a second there I had to use a min of two pw warps before it pwr would work.

    All I was trying to get at in my posts was that I just wanted to be able to tp some place then pwr 0 back within the time it allows me to do so.

    Probably do need to check where I warped using tp thats just adding un needed polling imo.
    Just as long as I can always pwr back to my last recent pw's while there in cache im satisfied with it.

    Guess its time for phase two then
    Nether to normal and vice versa pw.
     
  21. Offline

    The_Wrecker

    OK, I'll check the teleport hook and if it's there I might use it some time in the future, but for now I'll leave it the way it is. Multiworld is next on the list.

    Done a test build, but it has to stay compatible with the old format. So you don't lose any warps. I'm thinking about scanning the datafiles first and converting them . All at once should be the best bet. I'll let you know at which version you should backup the files.
     
  22. Offline

    ledhead900

    Alright just let me know might need write a new converter.

    Just take into account latest CB 297 that they swapped worlds again based on first load priorty so World < normal
    Nether = 1
     
  23. Offline

    d3x

    Finally figured out why I was getting "PW: no permission", it was not using Permissions! Once made some groups in Groups.txt and added users to them with Users.txt it worked! The plugin must get loaded before Permissions, could you delay the check for Permissions until the first time someone tries to use /pw as a work around?
     
  24. Offline

    The_Wrecker

    It loaded before permissions? Haven't seen that before. I actually don't know how the loading is done(which gets to load first). So well. Yeah I can work around that. Was doing reflection anyway.
     
  25. Offline

    peasantlord

    I'm running into a similiar issue (and yet different at the same time). Whenever I try to use the current version I get the following message in my startup.

    Code:
    2011-02-10 13:55:44 [INFO] [Permissions] version [2.0] (Handler) loaded
    2011-02-10 13:55:44 [SEVERE] PW: PluginControl dependency not found!
    2011-02-10 13:55:44 [INFO] Loading PluginControl Version 0.41
    2011-02-10 13:55:44 [INFO] Using Nijikokun's Permission plugin
    2011-02-10 13:55:44 [INFO] PluginControl started
    
    As a result, the PW plugin wont work. I can use the classic version without issues, but the one that depends on PluginControl just won't load.
     
  26. Offline

    The_Wrecker

    I'm already rewriting part of that system. I figured it could happen with PluginControl as well and you have proof that it did. I also noticed that there is still some unfinished code for multiworld in bukkit. As a result I can't implement it yet the way I want.

    Maybe I was a bit hasty, a warp can now be in another world. I had 1 warp in a nether world and 1 in a normal world. I could switch world using /pw goto warp. LOL.

    About the Plugin detection system thing, I'm going to check on jars (the actual file).That will at least solve part of the problem.
     
  27. Offline

    peasantlord

    No worries.. Just figured I would mention it. The classic version is working fine for us so far. :) Thanks for the plugin!
     
  28. Offline

    The_Wrecker

    I appreciate your feedback. Otherwise I wouldn't have known that player/server admins actually have seen the error. Thank you for that.
    --- merged: Feb 13, 2011 4:21 PM ---
    I made a detection whether a plugin is already loaded and loads it if it isn't, unfortunaltly since I don't have any problems loading I can't test it well enough.

    Also before I can release this I have a question (about multiworld support):

    I made a little gui to present a choice with which world should be default. So all you have to do is click on the default world you had (probably world). This runs every startup. Only fixes the warps that need fixing/converting.

    This is very user friendly, but I'm not sure if you guys have a graphical desktop loaded.

    Another note: I'm determining the world based on it's name. I you ever change the name of the world than all the warps will give strange results. No way to get around that.
     
  29. Offline

    QQCucumber

    My server runs on a CentOS VPS with no graphical interface.
     
  30. Offline

    The_Wrecker

    Right. I was afraid of that. I assume you are also using the plugin. I'll have to find some other way than.
    --- merged: Feb 13, 2011 7:56 PM ---
    I released a new version. 1.3.2
    I recommend you backup the privatewarp data files first. Since it has a converter built in.

    You also need to set a new configuration entry: default_world=<world_name>
    If you don't the plugin will fail (This is intended).
    You have to put the configuration entry into the default group configuration file.
    The converter in the plugin will pick up this entry and use it.

    The world has to exist. IF it's non existant you'll get a severe in the console. Read those severes! They are important.

    The new version checks if it loaded before another plugin, but I can't test if it works. If anyone can confirm if it works for them right now, I would appreciate it.

    Because of all the chnages, I'm putting the link here:
    http://dump.wrecker.nl/bukkit/PrivateWarp-Bukkit.zip

    built against: craftbukkit 302.

    If you were wondering, yes the extra config is done instead of the gui I mentioned earlier.
    --- merged: Feb 13, 2011 11:48 PM ---
    Good thing it's not up on the first post. I seem to be getting error's with the permissions plugin. Runs fine without it though.
    --- merged: Feb 14, 2011 12:59 AM ---
    Got some stuff fixed up. I know what goes wrong. Stays strange though.

    I think I was not very clear, but I reuploaded the zip file with new jar files. Just so you guys know.
    --- merged: Feb 14, 2011 10:24 PM ---
    I felt confident enough to officially release the current 1.3.2 build I just ran.

    I haven't seen any failures or errors. Either with Permission or without it so it should be good(I think).
    So I posted it on the front page. It's not the same version as the zip file posted earlier. Consider the zip file a release candidate (although I now replaced it with the latest 1.3.2 version).

    If you downloaded the zip file before this post you should redownload the plugin.
    --- merged: Feb 15, 2011 10:38 PM ---
    Found away to hook the teleport through bukkit.

    I'll release that next version. So it does not matter if you got tped or if you warped yourself... it should record that and put it on the stack of /pwr

    I'm probably halfway through coding the hook. It'll work differently than before though. It stores where you came from... Maybe it's now more in-line what you expected/want.

    Darn. The hook is not yet done in Bukkit itself... No worries. Let's just say I'm prepared.
     
  31. Offline

    ledhead900

    Gotta say ur doing a good Job, We currently in the mits of moving our current guestzone to a new world map and creating a somewhat of a story background to go along the lines of a Alt world and two are held together by a rip in space. Need Quest NPCs tho to pull it off ha.

    I need to cut back my projects Im juggling MC server administration, Finishing some builds, No this Guest move is about 45% the way done, and Pulling my self away from Dragonage Origins complete with all DLC and some mods while tossing up Magika as well.
     

Share This Page