Server update

We’ve finally got around to updating the WoW server. If you have any issues. Please report them to [email protected].

User registration fixed

I finally got a chance to fix the user registration. I just made use of the Network Subsite User Registration plugin. There are other posts about making the modifications yourself but this worked and makes things simpler. There was also an issue with the WordPress mailer on Debian. Turns out WordPress uses a modified version of phpmailer that was interfering with Debian supplied (and required) package libphp-phpmailer. Here’s the fix:

*** class.phpmailer.php.orig    2018-12-01 14:09:47.000000000 +0000
--- class.phpmailer.php    2020-01-01 22:00:47.817057652 +0000
***************
*** 1492,1497 ****
--- 1492,1498 ----
      public function getSMTPInstance()
      {
          if (!is_object($this->smtp)) {
+             require_once( 'class.smtp.php' );
              $this->smtp = new SMTP;
          }
          return $this->smtp;

This needs to be applied to the Debian-supplied phpmailer at /usr/share/php/libphp-phpmailer/class.phpmailer.php. A kind soul on this support ticket outlined the fix.

If you run into any issues, please let us know.

Site deployment automation

TL;DR: To support server deployment automation, the WordPress front end has been merged together with other OW sites. Unfortunately, this breaks user registration until the package maintainers fix it. I’ll have to look into a fix another day. I’m really busy these days. Existing accounts should work as usual. Please report anything else that’s broken.

Previously, the WoW site was a stand alone WordPress site served at its URL by the web server under the same domain. Now, it’s just another site that’s part of the Obsidian Worlds multi-site deployment. This required merging the stand-alone site and multi-site databases. I’m documenting the process here for prosperity since the bulk of my time was spent hunting down the information. I also did some work on the authentication between CMangos and WordPress, but I won’t go over that here.

The databases were from WordPress 4.7.5. Here’s a overview of the merge.

  1. Backup the stand-alone database
  2. Create the new site
  3. Move user IDs out of the way
  4. Import the stand-alone database into the multi-site database with table renames
  5. Apply some database fixes

Backup the database

mysqldump obsidianworlds_wow | pv | pigz > obsidianworlds_wow.sql.gz

Here, the ‘pv’ command just tracks progress and ‘pigz’ is a multi-core compressor that can substantially increase compression time.

Create the new site

Create a new site with Network Settings -> Sites. Make note of the ID in the URL. You’ll need that rename tables.

Move user data out of the way

This is where things get messy. Fortunately for me, my multi-site only has a few admins that didn’t clash with other user IDs. All I had to do was move user meta data:

update wp_usermeta set umeta_id = umeta_id+24332 where user_id = 1;

For any IDs you change, you’ll need to fix the auto-increment for:

alter table wp_usermeta AUTO_INCREMENT = 25900;

Import the database

To rename and import the database at once:

zcat obsidianworlds_wow.sql.gz | pv | sed 's/`wp_/`wp_4_/g' | mysql obsidianworlds

Replace 4 with your new site ID from above.

At this point you’ll have two tables that don’t belong: ‘wp_4_users’ and wp_4_usermeta’. Multi-site WordPress installations share authentication so these tables will never be used but they’re imported so we can merge them into the real tables.

To merge the two tables:

insert into wp_users select * from wp_4_users;
insert into wp_usermeta select * from wp_4_usermeta;

Apply database fixes

When you go to add the new users to the site, you’ll notice there are no available roles to select from. To fix this:

update wp_4_options set option_name = 'wp_4_user_roles' where option_name = 'wp_user_roles';

Next, fix up users site associations by renaming user capabilities:

update wp_usermeta set meta_key = 'wp_4_capabilities' where meta_key = 'wp_capabilities' and user_id > 1;
update wp_usermeta set meta_key = 'wp_4_user_level' where meta_key = 'wp_user_level' and user_id > 1;

For me, only user ID 1 didn’t need to be fixed up. Be careful here, as this may mess up pre-existing users in the original multi-site installation. This’ll likely be different for you.

Another long awaited server update

The server has been updated again. This update finally corrects the very annoying stuck disconnect bug. Let us know if there are any other issues. Please report issues to [email protected].

Characters getting stuck/broken after disconnect

We’ve been experiencing issue with characters becoming stuck or broken after their client is unexpectedly disconnected from the game (e.g. from lost Internet connection). After the player is disconnected, their current character has empty bags and shows no experience on their experience bar. Nothing is actually lost but the character is unable to use previous items in their inventory.

It seems to be related to this bug: https://github.com/cmangos/issues/issues/1177

The only known fix that seems to work is a server restart. Feel free to request a server restart if this happens to you. We also ask other players to please be patient with the restarts.

Long Over Due Server Update

We’ve done a major update of the server. Please report issues to [email protected].

People have been reporting issues with characters getting stuck or losing equipment until the server is restarted. Hopefully, that’s all fixed now.

A little site reorg

Some content was moved around to other systems to help with some future proofing. This shouldn’t affect in-game performance at all. If you do notice any problems (eg. broken links), please let us know.

 

Weekly Server Update – January 6, 2017

Hey guys,

Sorry for the lack of an update in the last month or so, there were no pressing issues with the server (currently over 30 days of uptime) and holidays got in the way. Anyways, this is a fairly big update:

Major Changes:

  • Many percentages & formulas were adjusted to better reflect crit, dodge, parry and block.
  • Night Elves had double +1% dodge applied erroneously.
  • You are now unable to dodge, parry or block when feared, stunned, etc
  • Fixed auras that would cause you to be able to parry without weapons, block without shields, etc.
  • Fixed weirdness when dealing with negative chances for certain effects
  • Fixed some issues with magic resistances, particularly at low levels
  • Map generator had small fixes that should allow better Line of Sight calculations, allow you to jump over small fences, as well as de-aggroing but keeping you in combat.
  • Bunch of stability fixes (although seems like we don’t need them), particularly some crash-on-exit issues for the server that should allow for the server restarting to be more consistent.

Video of the Month – January 2017

Keep voting!

For those that aren’t, we ask that you please vote whenever you can. And for those that are, please keep voting. You only need to do it once every 12-24 hours or so. I know some have asked for the voting timers back. We’ll get to adding them but they’re not high on the priority list.

Anyway, we’re trying to bring more people to the server. An empty server serves no one :).

If you have ideas on how to bring more people to the server, feel free to leave a comment.