{"id": 102959085, "node_id": "MDExOlB1bGxSZXF1ZXN0MTAyOTU5MDg1", "number": 1, "state": "closed", "locked": 0, "title": "Updates to database and underlying code", "user": {"value": 6705011, "label": "xanxin887"}, "body": "Updates to database and underlying code", "created_at": "2017-01-24T16:55:13Z", "updated_at": "2017-01-24T18:24:10Z", "closed_at": "2017-01-24T18:24:10Z", "merged_at": null, "merge_commit_sha": "dce6693ebf2125dccfaf02a0b0328031a16815b2", "assignee": null, "milestone": null, "draft": 0, "head": "5c139c0bcee1fabf0c959c196a932a938df17f19", "base": "3c13cc6acacd9d3a208503b5c5e5e2f0d44cf4c9", "author_association": "NONE", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/1", "merged_by": null} {"id": 102981430, "node_id": "MDExOlB1bGxSZXF1ZXN0MTAyOTgxNDMw", "number": 2, "state": "closed", "locked": 0, "title": "Updates for DB 1/24/17", "user": {"value": 6705011, "label": "xanxin887"}, "body": "Updates for DB to prep for creating associated tables", "created_at": "2017-01-24T18:58:40Z", "updated_at": "2017-02-01T12:50:46Z", "closed_at": "2017-02-01T12:50:46Z", "merged_at": null, "merge_commit_sha": "b53a9f175617206d2d805f6f38657e0d038ff651", "assignee": null, "milestone": null, "draft": 0, "head": "72e524a4667fda86bc42371c8a65ec1b8a956d66", "base": "3c13cc6acacd9d3a208503b5c5e5e2f0d44cf4c9", "author_association": "NONE", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/2", "merged_by": null} {"id": 104196635, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0MTk2NjM1", "number": 10, "state": "closed", "locked": 0, "title": "Client and Server expects account in ace_auth to be lowercase only.", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "This is my first pull request, please let me know if I'm doing this incorrectly.\r\n\r\nSimple change I made to the accountcreate command to correct and prevent the issue I experienced when setting up ACE.\r\n\r\nThe client always sends accounts as lowercase regardless of what the user types in the command line. The server itself resolves the difference and connects as well. The issue surfaces when attempting to create a character. That packet is sent, but no response is ever recv'd.", "created_at": "2017-02-01T18:45:44Z", "updated_at": "2017-02-02T16:36:57Z", "closed_at": "2017-02-02T16:36:53Z", "merged_at": "2017-02-02T16:36:53Z", "merge_commit_sha": "77932b57355c6283b67052f448e2b041794f76ad", "assignee": null, "milestone": null, "draft": 0, "head": "3cee156a52d1385c06ee7553248b6aed8442ae0c", "base": "95910918de3356f10cf5e519dd4cb7dfd7a731b8", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/10", "merged_by": null} {"id": 104288490, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Mjg4NDkw", "number": 11, "state": "closed", "locked": 0, "title": "Run faster, jump higher, teleport to coordinates (rather than XYZ position)", "user": {"value": 22650655, "label": "sbaum23"}, "body": "These values are hardcoded and need to be replaced with actual values from the Player object. This is mainly to let people run around faster in the emu until code it put in to send all player skills to client.\r\n\r\nI'm Xen on Discord.", "created_at": "2017-02-02T07:42:55Z", "updated_at": "2017-02-03T20:59:39Z", "closed_at": "2017-02-03T20:59:39Z", "merged_at": null, "merge_commit_sha": "0d76d44ad9bc278db860ab38f71371230cb400d2", "assignee": null, "milestone": null, "draft": 0, "head": "5282ba7507342911f331cac1657f4e7c00a2a487", "base": "77932b57355c6283b67052f448e2b041794f76ad", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/11", "merged_by": null} {"id": 104478851, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NDc4ODUx", "number": 13, "state": "closed", "locked": 0, "title": "database layer encapsulation and abstraction", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "Sorry about the solution file. I'm on VS 2015 pro and I've no idea why it changed. All I did was add the .gitignore as a solution item.\r\n\r\nUse Visual Studio to diff the files. Git isn't doing a good job with the compare. Mogwai in Discord.", "created_at": "2017-02-03T05:44:27Z", "updated_at": "2017-02-04T05:55:04Z", "closed_at": "2017-02-04T05:54:55Z", "merged_at": null, "merge_commit_sha": "989f09a0a827e88373b6de9395d7427d5aaabb62", "assignee": null, "milestone": null, "draft": 0, "head": "93e9a5ce54a01aa41de87bedb603161443a3d348", "base": "e871785055353d86b12d57f0f6788cde43dfd994", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/13", "merged_by": null} {"id": 104612473, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NjEyNDcz", "number": 14, "state": "closed", "locked": 0, "title": "Added /teleto command", "user": {"value": 22650655, "label": "sbaum23"}, "body": "My commit has the wrong command in it. I added the /teleto command for teleporting using coordinates.", "created_at": "2017-02-03T21:12:15Z", "updated_at": "2017-02-05T06:37:44Z", "closed_at": "2017-02-05T02:21:27Z", "merged_at": null, "merge_commit_sha": "8bdb2d66e2170855dd67e479821befc3f6ebb33d", "assignee": null, "milestone": null, "draft": 0, "head": "b5666aa832f6eb72defb3fe876cb5f0480fd3b89", "base": "77932b57355c6283b67052f448e2b041794f76ad", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/14", "merged_by": null} {"id": 104650586, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NjUwNTg2", "number": 16, "state": "closed", "locked": 0, "title": "database abstraction and encapsulation. created character model and skill attribute models.", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "", "created_at": "2017-02-04T05:57:10Z", "updated_at": "2017-02-04T06:42:11Z", "closed_at": "2017-02-04T06:42:11Z", "merged_at": null, "merge_commit_sha": "4ac9e65768aaeb926535ecaf6866fcf0f27a2c12", "assignee": null, "milestone": null, "draft": 0, "head": "929481260c1f198cacd699c9561a2b43a8cfd62f", "base": "86c9c58bc10d90d3fe792d0ca000e5cb46183abe", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/16", "merged_by": null} {"id": 104651917, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NjUxOTE3", "number": 17, "state": "closed", "locked": 0, "title": "database encapsulation is done! yay!", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "", "created_at": "2017-02-04T06:55:34Z", "updated_at": "2017-05-30T15:34:08Z", "closed_at": "2017-02-04T07:13:27Z", "merged_at": "2017-02-04T07:13:27Z", "merge_commit_sha": "264b760729df18b09fd82c5a543ffc5bd33efa8f", "assignee": null, "milestone": null, "draft": 0, "head": "f3c21a6b6724344244f26a460e026159796941ff", "base": "86c9c58bc10d90d3fe792d0ca000e5cb46183abe", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/17", "merged_by": null} {"id": 104652614, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NjUyNjE0", "number": 18, "state": "closed", "locked": 0, "title": "Option to Enable Automatic Account Creation", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Added a configurable variable to Config.json for allowing the server to create an account for the client when one does not exist on the server.", "created_at": "2017-02-04T07:23:37Z", "updated_at": "2017-03-20T02:59:13Z", "closed_at": "2017-02-04T22:14:16Z", "merged_at": null, "merge_commit_sha": "b34024b2fce8032ab72784481d8caf22ffe654c6", "assignee": null, "milestone": null, "draft": 0, "head": "e590e18a645f0f87d218107f82829943b9254359", "base": "264b760729df18b09fd82c5a543ffc5bd33efa8f", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/18", "merged_by": null} {"id": 104668124, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NjY4MTI0", "number": 21, "state": "closed", "locked": 0, "title": "Change password hashing to use scrypt", "user": {"value": 570040, "label": "zbuc"}, "body": "I switched the password hashing over to use libsodium's scrypt\r\nimplementation. This involved adding a new migration.\r\n\r\nI noticed that currently the password isn't checked. I started looking\r\ninto how to implement password checking and it looks like we will\r\nprobably need to have a launcher to do so.\r\n\r\nThe reason the commit touches so many files is because it also cleans up\r\nthe files with mixed line endings.", "created_at": "2017-02-04T17:28:50Z", "updated_at": "2017-03-20T02:20:14Z", "closed_at": "2017-03-20T02:20:14Z", "merged_at": null, "merge_commit_sha": "232baa779ad7b8e71bf939c379512fa0c3e00ea8", "assignee": null, "milestone": null, "draft": 0, "head": "86efd0438861d86b4c670863fc987aee60258890", "base": "264b760729df18b09fd82c5a543ffc5bd33efa8f", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/21", "merged_by": null} {"id": 104668808, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NjY4ODA4", "number": 22, "state": "closed", "locked": 0, "title": "Teleloc loader fix and basic set of locations", "user": {"value": 10677293, "label": "ChrisAikman"}, "body": "Fixed an index bug in `WorldDatabase.GetLocations` and added a basic set of telelocations to the `teleport_location` table for use with `teleloc`. Updated the `teleloc` command to accept multiple name locations, such as `Ayan Baqur`.", "created_at": "2017-02-04T17:48:51Z", "updated_at": "2017-02-04T22:11:12Z", "closed_at": "2017-02-04T22:11:12Z", "merged_at": "2017-02-04T22:11:12Z", "merge_commit_sha": "7044ce63422bf70fe8118ef99967f93440e77f7e", "assignee": null, "milestone": null, "draft": 0, "head": "807116f0d6a16379dd3f2e1e7a07437ded090d2a", "base": "264b760729df18b09fd82c5a543ffc5bd33efa8f", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/22", "merged_by": null} {"id": 104675888, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njc1ODg4", "number": 23, "state": "closed", "locked": 0, "title": "Add Config.json to .gitignore", "user": {"value": 570040, "label": "zbuc"}, "body": "This also forces first-time configuration.\r\n\r\nExisting Config.json copied to Config.json.example\r\n\r\nREADME.md has been updated with instructions.", "created_at": "2017-02-04T21:12:57Z", "updated_at": "2017-02-04T22:53:44Z", "closed_at": "2017-02-04T22:53:44Z", "merged_at": "2017-02-04T22:53:44Z", "merge_commit_sha": "dc14891256be0e40fa4bf3db87217d159080b4cc", "assignee": null, "milestone": null, "draft": 0, "head": "e9a903c165521e623cb81782104791b7b7c95052", "base": "264b760729df18b09fd82c5a543ffc5bd33efa8f", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/23", "merged_by": null} {"id": 104676562, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njc2NTYy", "number": 24, "state": "closed", "locked": 0, "title": "Fixed bug in CharacterCreate.", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": " It was not changing the AccountId in the database when saving leading to empty character list.", "created_at": "2017-02-04T21:32:30Z", "updated_at": "2017-02-17T06:50:27Z", "closed_at": "2017-02-04T22:54:04Z", "merged_at": "2017-02-04T22:54:04Z", "merge_commit_sha": "1e84da7a438bd092c6d425e2090654e8e102f11e", "assignee": null, "milestone": null, "draft": 0, "head": "3252dc371f8de89d7fe5f1c1e89ae98f51d45466", "base": "264b760729df18b09fd82c5a543ffc5bd33efa8f", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/24", "merged_by": null} {"id": 104677809, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njc3ODA5", "number": 25, "state": "closed", "locked": 0, "title": "Option to Enable Automatic Account Creation", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Added a configurable variable to Config.json for allowing the server to create an account for the client when one does not exist on the server.", "created_at": "2017-02-04T22:11:38Z", "updated_at": "2017-03-20T02:59:21Z", "closed_at": "2017-02-05T08:52:58Z", "merged_at": null, "merge_commit_sha": "9da13efde6fbbb23bb1bc1aabb23afe8c4b56866", "assignee": null, "milestone": null, "draft": 0, "head": "edc656d67181398b24b5ac919391a267f19faaa6", "base": "7044ce63422bf70fe8118ef99967f93440e77f7e", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/25", "merged_by": null} {"id": 104677865, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njc3ODY1", "number": 26, "state": "closed", "locked": 0, "title": "Fixing up Character Delete and Restore functions", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "In looking at the character deletion and restore section it made sense to me that name in character database shouldn't be made a unique value\r\nAt present in master, even if that character was marked as deleted, the character name is held.\r\n\r\nI've made changes to the code and database to better emulate how it worked before with respect to deletions and restores.\r\n\r\nAs is, no character is ever marked deleted so that is yet to be implemented, although I suspect that would be a server side SQL script or command within ACE running at an interval/manually via console as determined by a configuration variable(s) possibly in config.json for how often it checks, how long the restore window is and if to mark characters deleted or not which would remove them from restoration via client.\r\n\r\nGoing further than original design, perhaps it could be changed to hold the character name for that account only while the restoration window is active, as well as only allowing that account to create a brand new character with that deleted name.", "created_at": "2017-02-04T22:13:24Z", "updated_at": "2017-03-10T04:56:27Z", "closed_at": "2017-02-05T09:03:41Z", "merged_at": null, "merge_commit_sha": "f4dce31714f7a580da1d01aff9e554ba65b0bf68", "assignee": null, "milestone": null, "draft": 0, "head": "0cdeaafe58516e82214cc149ee15a83cd6a2073b", "base": "7044ce63422bf70fe8118ef99967f93440e77f7e", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/26", "merged_by": null} {"id": 104678600, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njc4NjAw", "number": 27, "state": "closed", "locked": 0, "title": "Corrected spelling in a few places.", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-02-04T22:36:04Z", "updated_at": "2017-02-05T09:07:42Z", "closed_at": "2017-02-05T03:35:03Z", "merged_at": "2017-02-05T03:35:03Z", "merge_commit_sha": "50f190237620c104b7f142aef0508bdd4888da97", "assignee": null, "milestone": null, "draft": 0, "head": "00aa9c5bc4fe1891e54c81cd1c5f7e615af9ce46", "base": "7044ce63422bf70fe8118ef99967f93440e77f7e", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/27", "merged_by": null} {"id": 104684490, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njg0NDkw", "number": 29, "state": "closed", "locked": 0, "title": "Teleto command redo", "user": {"value": 22650655, "label": "sbaum23"}, "body": "Fixed coding convention issues with my previous commit.", "created_at": "2017-02-05T02:20:42Z", "updated_at": "2017-02-05T06:21:29Z", "closed_at": "2017-02-05T06:01:09Z", "merged_at": null, "merge_commit_sha": "246c972196717c17a45187a329bb5d2a891f5362", "assignee": null, "milestone": null, "draft": 0, "head": "18332f3c69490e063489adceedf23cebe162703d", "base": "c5f72473010b292592e70daa174f48aa3ad55127", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/29", "merged_by": null} {"id": 104686397, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njg2Mzk3", "number": 30, "state": "closed", "locked": 0, "title": "Fix for NAT issues on internal connections to WorldServer", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "This should help alleviate the issue some people will see when configuring all IPs to external, but connecting to the server on internal IPs.", "created_at": "2017-02-05T03:53:57Z", "updated_at": "2017-03-10T04:56:23Z", "closed_at": "2017-02-05T05:37:01Z", "merged_at": null, "merge_commit_sha": "074b40e9a820a16d22b31bec29d2d935e17080f4", "assignee": null, "milestone": null, "draft": 0, "head": "2e4162f62030a6bcba396adf03ef74dbc77cb6a4", "base": "50f190237620c104b7f142aef0508bdd4888da97", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/30", "merged_by": null} {"id": 104688734, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njg4NzM0", "number": 32, "state": "closed", "locked": 0, "title": "Fix for NAT issues on internal connections to WorldServer", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "This fix is meant help alleviate a NAT issue some people will see when configuring server IP to external address. \r\n\r\nDue to problematic NAT routing, connecting to external IP while on internal network leads to black screen on hand-off to world server. Others may not even be able to connect to server using external IP address.\r\n\r\nThis fix should allow for external IP connection for those outside of network, and internal IP connection for those inside the network.", "created_at": "2017-02-05T05:42:01Z", "updated_at": "2017-03-10T04:56:20Z", "closed_at": "2017-02-05T21:05:00Z", "merged_at": null, "merge_commit_sha": "42872992933c4e4982c2e46ffbaa90a7b0bb3e31", "assignee": null, "milestone": null, "draft": 0, "head": "e78024ecee915f1487bfcef2d20362dd0ffa85ab", "base": "7b690552070222895d1de0aca5458c1cf02813e5", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/32", "merged_by": null} {"id": 104689447, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0Njg5NDQ3", "number": 33, "state": "closed", "locked": 0, "title": "Added /teleto command", "user": {"value": 22650655, "label": "sbaum23"}, "body": "Z position needs to be calculated from a file but since that isn't in the code yet, I'm defaulting it to 200. For some places that is not high enough and you'll be in darkness, but at least this allows you to teleport using coordinates.", "created_at": "2017-02-05T06:16:08Z", "updated_at": "2017-02-06T12:17:24Z", "closed_at": "2017-02-06T12:17:24Z", "merged_at": "2017-02-06T12:17:24Z", "merge_commit_sha": "ec338cc5a505fbc3a3e93899b9b18d37f09805a3", "assignee": null, "milestone": null, "draft": 0, "head": "de5fe5205ce5084532a81466cb69ad81103120fe", "base": "7b690552070222895d1de0aca5458c1cf02813e5", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/33", "merged_by": null} {"id": 104692856, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NjkyODU2", "number": 34, "state": "closed", "locked": 0, "title": "Option to Enable Automatic Account Creation", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Added a configurable variable to Config.json.example for allowing the server to create an account for the client when one does not already exist on the server.", "created_at": "2017-02-05T08:52:31Z", "updated_at": "2017-03-20T02:59:43Z", "closed_at": "2017-02-07T17:42:22Z", "merged_at": null, "merge_commit_sha": "6ecae5372114a08f7cb16ec99060ee7314cf317f", "assignee": null, "milestone": null, "draft": 0, "head": "8c577d5bbd5a93692e6e106eae596ac035ab0ee5", "base": "7b690552070222895d1de0aca5458c1cf02813e5", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/34", "merged_by": null} {"id": 104693108, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NjkzMTA4", "number": 35, "state": "closed", "locked": 0, "title": "Fixing up Character Delete and Restore functions", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "In looking at the character deletion and restore section it made sense to me that name in character database shouldn't be made a unique value\r\nAt present in master, even if that character was marked as deleted, the character name is held.\r\n\r\nI've made changes to the code and database to better emulate how it worked before with respect to deletions and restores.\r\n\r\nAs is, no character is ever marked deleted so that is yet to be implemented, although I suspect that would be a server side SQL script or command within ACE running at an interval/manually via console as determined by a configuration variable(s) possibly in config.json.example for how often it checks, how long the restore window is and if to mark characters deleted or not which would remove them from restoration via client.\r\n\r\nGoing further than original design, perhaps it could be changed to hold the character name for that account only while the restoration window is active, as well as only allowing that account to create a brand new character with that deleted name.", "created_at": "2017-02-05T09:03:13Z", "updated_at": "2017-03-10T04:56:13Z", "closed_at": "2017-02-11T05:46:23Z", "merged_at": null, "merge_commit_sha": "e8a0449c7f2c303a2e01a4250fc6955c7b9073b0", "assignee": null, "milestone": null, "draft": 0, "head": "2af29b0c51af56a712ed3905803e95879947be50", "base": "7b690552070222895d1de0aca5458c1cf02813e5", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/35", "merged_by": null} {"id": 104712668, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NzEyNjY4", "number": 36, "state": "closed", "locked": 0, "title": "Add automatic database migrations to startup", "user": {"value": 570040, "label": "zbuc"}, "body": "Database migrations will automatically be run.\r\nName them according to the format (`#_YYYY-MM-DD-descriptive_name.sql`)\r\nand put in the appropriate directory and it will run on the next server\r\nstartup.\r\n\r\nMigrations are only run once, in ascending numeric order. The current\r\ndatabase state is tracked in a new database called `Global`.\r\n\r\nThis simplifies server setup: now the only step is to create the four\r\ndatabases. The base SQL and migrations will be run automatically from\r\nthat point on.\r\n\r\nThis also simplifies migrations, which will no longer need to\r\nincorporate complex conditional logic in order to be repeatable.", "created_at": "2017-02-05T20:02:19Z", "updated_at": "2017-04-06T12:11:16Z", "closed_at": "2017-04-06T12:11:16Z", "merged_at": null, "merge_commit_sha": "78fb0b0d80f01127295640717a9cf4ef4285654b", "assignee": null, "milestone": null, "draft": 0, "head": "56b85d587fc00379e167113b263c97ca0fa810f9", "base": "127dba77546682531dee465300c68e6a38e8a098", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/36", "merged_by": null} {"id": 104715315, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NzE1MzE1", "number": 37, "state": "closed", "locked": 0, "title": "Add option to send different host address than external host address during world handoff", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "The purpose of this code is to allow a server operator to configure their external IP for clients connecting from the internet as well as allowing clients connecting on the intranet to use the local network IP address of the server instead.\r\n\r\nThe options are configurable via config.json and set to false by default.", "created_at": "2017-02-05T21:04:40Z", "updated_at": "2017-03-10T04:56:11Z", "closed_at": "2017-03-01T05:51:04Z", "merged_at": null, "merge_commit_sha": "1fe95b96e105107c6b1d23f265fdf1997464ae24", "assignee": null, "milestone": null, "draft": 0, "head": "e1fda850dd64f81597cce77a2b9902d83ae0edd9", "base": "7b690552070222895d1de0aca5458c1cf02813e5", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/37", "merged_by": null} {"id": 104723892, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NzIzODky", "number": 38, "state": "closed", "locked": 0, "title": "Fix for server crash when account does not exist for connecting client", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Please use this PR if rejecting PR #34. this contains the fix to the server crash when an account is not created and a client tried to connect to the server using the invalid account.\r\n\r\nthis fix is already in PR #34 so if that one is accepted, reject this one.", "created_at": "2017-02-06T01:04:32Z", "updated_at": "2017-02-07T18:34:41Z", "closed_at": "2017-02-07T16:49:41Z", "merged_at": "2017-02-07T16:49:41Z", "merge_commit_sha": "8fdbac59c65555a36ebb7642849539fbdda642bd", "assignee": null, "milestone": null, "draft": 0, "head": "9ab4e56179722ffb679514ab511c3dc24631dda4", "base": "7b690552070222895d1de0aca5458c1cf02813e5", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/38", "merged_by": null} {"id": 104751331, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0NzUxMzMx", "number": 40, "state": "closed", "locked": 0, "title": "Adding in support for teleportation via clicking on the map panel.", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Go places faster!", "created_at": "2017-02-06T08:06:40Z", "updated_at": "2017-02-07T18:34:48Z", "closed_at": "2017-02-06T12:12:46Z", "merged_at": "2017-02-06T12:12:46Z", "merge_commit_sha": "7f9e3cb35949e9638a51ff171a2e36e5b746bd23", "assignee": null, "milestone": null, "draft": 0, "head": "c00f94dbf77258ae28c9a7803447a9940e2401d3", "base": "33fcf1f196d7adfcfad2ebaa0640cb323592517e", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/40", "merged_by": null} {"id": 104907637, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0OTA3NjM3", "number": 46, "state": "closed", "locked": 0, "title": "Update create_mysql.sql", "user": {"value": 25277356, "label": "KochiroOfHG"}, "body": "Added \"IF NOT EXISTS\" to the create statements so that if the database already exists then a warning will be thrown instead of an error.", "created_at": "2017-02-06T23:46:04Z", "updated_at": "2017-02-12T11:36:42Z", "closed_at": "2017-02-12T11:36:42Z", "merged_at": "2017-02-12T11:36:42Z", "merge_commit_sha": "412806f7b20e82f5129e47b6009b028d766e7065", "assignee": null, "milestone": null, "draft": 0, "head": "b60bd334653b9ee57a22f78fb5ba374a82b5e644", "base": "ec338cc5a505fbc3a3e93899b9b18d37f09805a3", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/46", "merged_by": null} {"id": 104940626, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA0OTQwNjI2", "number": 47, "state": "closed", "locked": 0, "title": "Load saved characters", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "", "created_at": "2017-02-07T05:43:40Z", "updated_at": "2017-05-30T15:34:10Z", "closed_at": "2017-02-07T16:49:01Z", "merged_at": "2017-02-07T16:49:01Z", "merge_commit_sha": "06880d3168925d78644bbef500caad641c683b7d", "assignee": null, "milestone": null, "draft": 0, "head": "4e071457e83a5b3ad8ab206a8e428f9c7e3416fb", "base": "ec338cc5a505fbc3a3e93899b9b18d37f09805a3", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/47", "merged_by": null} {"id": 105358446, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1MzU4NDQ2", "number": 50, "state": "closed", "locked": 0, "title": "Spending XP in Abilities, Vitals, and Skills, Saving Property buckets\u2026", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "\u2026. /grantxp command, moved persistence out of Player object for later refactoring of entity and data access project.", "created_at": "2017-02-09T04:35:43Z", "updated_at": "2017-05-30T15:34:11Z", "closed_at": "2017-02-10T18:44:23Z", "merged_at": "2017-02-10T18:44:23Z", "merge_commit_sha": "ca13a4fa1b0f044790c8373148715fabb2dd6527", "assignee": null, "milestone": null, "draft": 0, "head": "82e9f29922b3e368b8c081019fb327769efe96d5", "base": "8fdbac59c65555a36ebb7642849539fbdda642bd", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/50", "merged_by": null} {"id": 105361307, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1MzYxMzA3", "number": 54, "state": "closed", "locked": 0, "title": "Added friends list functionality.", "user": {"value": 22650655, "label": "sbaum23"}, "body": "Friends load from database on login and add/removing friends also saves to the db. When a friend logs on, the player should see the status change to online but it's hard to test that completely right now. Changing the status to offline when a friend logs off is not yet implemented.\r\n\r\nI had to implement a couple methods in WorldManager to be able to query for connected clients.\r\n", "created_at": "2017-02-09T05:14:37Z", "updated_at": "2017-02-17T08:00:32Z", "closed_at": "2017-02-17T08:00:32Z", "merged_at": null, "merge_commit_sha": "cf9c0d5ca381e16ff9df8226e131c76326da43db", "assignee": null, "milestone": null, "draft": 0, "head": "38c537733780e16d1043785c7397c4e54bfa0644", "base": "8fdbac59c65555a36ebb7642849539fbdda642bd", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/54", "merged_by": null} {"id": 105363346, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1MzYzMzQ2", "number": 55, "state": "closed", "locked": 0, "title": "Stubbed CommandHandlers for known AdminCommands", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Stubbed known admin commands with expected usage. not all could eventually be needed. Some could example output could also be expanded upon.", "created_at": "2017-02-09T05:41:21Z", "updated_at": "2017-02-17T06:50:21Z", "closed_at": "2017-02-17T06:30:40Z", "merged_at": null, "merge_commit_sha": "1f061c4e68d28d1924c18f33363a12fcf3aef702", "assignee": null, "milestone": null, "draft": 0, "head": "7f22146776ba342d3be3b9498405d09ceffc5246", "base": "127dba77546682531dee465300c68e6a38e8a098", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/55", "merged_by": null} {"id": 105743042, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1NzQzMDQy", "number": 57, "state": "closed", "locked": 0, "title": "Fixing up Character Delete and Restore functions", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "In looking at the character deletion and restore section it made sense to me that name in character database shouldn't be made a unique value\r\nAt present in master, even if that character was marked as deleted, the character name is held.\r\n\r\nI've made changes to the code and database to better emulate how it worked before with respect to deletions and restores.\r\n\r\nAs is, no character is ever marked deleted so that is yet to be implemented, although I suspect that would be a server side SQL script or command within ACE running at an interval/manually via console as determined by a configuration variable(s) possibly in config.json.example for how often it checks, how long the restore window is and if to mark characters deleted or not which would remove them from restoration via client.\r\n\r\nGoing further than original design, perhaps it could be changed to hold the character name for that account only while the restoration window is active, as well as only allowing that account to create a brand new character with that deleted name.", "created_at": "2017-02-11T05:45:56Z", "updated_at": "2017-02-17T06:50:19Z", "closed_at": "2017-02-16T05:17:24Z", "merged_at": null, "merge_commit_sha": "4780877d08b0228e401a301592ed3ab0fa3f6c79", "assignee": null, "milestone": null, "draft": 0, "head": "40ac5731fb816a87dc0fa0fda80192006300a2ee", "base": "412806f7b20e82f5129e47b6009b028d766e7065", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/57", "merged_by": null} {"id": 105771805, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1NzcxODA1", "number": 58, "state": "closed", "locked": 0, "title": "Added support on ACE console for setting per character admin rights and character renaming", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Also included in this PR is a fix for the propertybools (IsAdmin, etc) not always being set from database when a character logs in.", "created_at": "2017-02-11T23:19:23Z", "updated_at": "2017-03-10T04:56:08Z", "closed_at": "2017-03-09T07:44:47Z", "merged_at": null, "merge_commit_sha": "561d4e6469bf3d3f523c8d3c5fbda6625f0417c4", "assignee": null, "milestone": null, "draft": 0, "head": "659a5ebafdbdf3d70098a30b91df69fc358c8108", "base": "412806f7b20e82f5129e47b6009b028d766e7065", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/58", "merged_by": null} {"id": 105775228, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1Nzc1MjI4", "number": 59, "state": "closed", "locked": 0, "title": "Handle setting title from client and updating title from server", "user": {"value": 25618389, "label": "LytelthorpeThistledown"}, "body": "", "created_at": "2017-02-12T01:28:07Z", "updated_at": "2017-02-16T03:21:35Z", "closed_at": "2017-02-16T03:21:34Z", "merged_at": "2017-02-16T03:21:34Z", "merge_commit_sha": "63d531a47d985017ebab5c7d90fd6ed616bbbf8c", "assignee": null, "milestone": null, "draft": 0, "head": "a1b5989211536b4c8b61f6e3343c6978c7e3a463", "base": "cc29606f674f5a46c768481e845edb63e48fdbfa", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/59", "merged_by": null} {"id": 105919562, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1OTE5NTYy", "number": 60, "state": "closed", "locked": 0, "title": "Added automation script for dropping and creating databases.", "user": {"value": 4389226, "label": "damnubber"}, "body": "", "created_at": "2017-02-13T15:46:59Z", "updated_at": "2017-02-16T03:16:56Z", "closed_at": "2017-02-16T03:16:56Z", "merged_at": "2017-02-16T03:16:56Z", "merge_commit_sha": "98875974bc31e7a51c5498c32c08b1bd79d62fbb", "assignee": null, "milestone": null, "draft": 0, "head": "d0d5f157e808fcf3876c12595e71b7864691b68e", "base": "5567136fee3c8c1c4616341a9109d39113042d75", "author_association": "NONE", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/60", "merged_by": null} {"id": 106032610, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2MDMyNjEw", "number": 61, "state": "closed", "locked": 0, "title": "project separation and xp chart files", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "implements #43 and also moves all that xp chart data into json files loaded behind a database interface.", "created_at": "2017-02-14T04:18:31Z", "updated_at": "2017-05-30T15:34:11Z", "closed_at": "2017-02-16T03:04:34Z", "merged_at": "2017-02-16T03:04:33Z", "merge_commit_sha": "0274077252de51711491f1be8a3a4f909509074e", "assignee": null, "milestone": null, "draft": 0, "head": "2cbc8487151dcd7e662c91cb36dc8a94837e3e63", "base": "cc29606f674f5a46c768481e845edb63e48fdbfa", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/61", "merged_by": null} {"id": 106125642, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2MTI1NjQy", "number": 62, "state": "closed", "locked": 0, "title": "just adding stylecop as a style ruleset with very basic stuff", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "the team can review the options and make changes as necessary.", "created_at": "2017-02-14T15:19:35Z", "updated_at": "2017-05-30T15:34:12Z", "closed_at": "2017-02-16T03:14:13Z", "merged_at": "2017-02-16T03:14:13Z", "merge_commit_sha": "5567136fee3c8c1c4616341a9109d39113042d75", "assignee": null, "milestone": null, "draft": 0, "head": "62baa4214bfef90e63b538ed3b04b2279e53febb", "base": "0274077252de51711491f1be8a3a4f909509074e", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/62", "merged_by": null} {"id": 106448327, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2NDQ4MzI3", "number": 64, "state": "closed", "locked": 0, "title": "fixing merge conflict", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "", "created_at": "2017-02-16T03:26:33Z", "updated_at": "2017-02-16T03:26:38Z", "closed_at": "2017-02-16T03:26:38Z", "merged_at": "2017-02-16T03:26:38Z", "merge_commit_sha": "424278710f2755ed6b084694e936b9c23f9b21b1", "assignee": null, "milestone": null, "draft": 0, "head": "b44f56a83b0ff096acefcf4c19ea25fcf6c647d5", "base": "63d531a47d985017ebab5c7d90fd6ed616bbbf8c", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/64", "merged_by": null} {"id": 106448800, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2NDQ4ODAw", "number": 65, "state": "closed", "locked": 0, "title": "copy config.json as build step", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "", "created_at": "2017-02-16T03:32:21Z", "updated_at": "2017-02-16T03:32:25Z", "closed_at": "2017-02-16T03:32:25Z", "merged_at": "2017-02-16T03:32:25Z", "merge_commit_sha": "877f3bf26dced9e6f54d937af8cd4b614aa35ef3", "assignee": null, "milestone": null, "draft": 0, "head": "c1f581f57f26a1909e1ef261d07a465448f43f6d", "base": "424278710f2755ed6b084694e936b9c23f9b21b1", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/65", "merged_by": null} {"id": 106456643, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2NDU2NjQz", "number": 66, "state": "closed", "locked": 0, "title": "Fixing up Character Delete and Restore functions", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "In looking at the character deletion and restore section it made sense to me that name in character database shouldn't be made a unique value\r\nAt present in master, even if that character was marked as deleted, the character name is held.\r\n\r\nI've made changes to the code and database to better emulate how it worked before with respect to deletions and restores.\r\n\r\nAs is, character is marked deleted in database an hour after deleted from client via a server side SQL script running from event_scheduler. Later revisions to this code could address configuration variable(s) possibly in config.json.example for how long the restore window is and if to mark characters deleted or not which would remove them from restoration via client, enable/disable this event check etc..\r\n\r\nGoing further than original design, perhaps it could be changed to hold the character name for that account only while the restoration window is active, as well as only allowing that account to create a brand new character with that deleted name.", "created_at": "2017-02-16T05:16:36Z", "updated_at": "2017-02-17T06:49:36Z", "closed_at": "2017-02-17T01:38:08Z", "merged_at": "2017-02-17T01:38:08Z", "merge_commit_sha": "64a76b56abf1712aceb85788c5d2093187d0f922", "assignee": null, "milestone": null, "draft": 0, "head": "b6a3741cddfe480d998abc783330e293aba853e9", "base": "877f3bf26dced9e6f54d937af8cd4b614aa35ef3", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/66", "merged_by": null} {"id": 106675759, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2Njc1NzU5", "number": 67, "state": "closed", "locked": 0, "title": "Stubbed CommandHandlers for known AdminCommands", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Stubbed known admin commands with expected usage. not all could eventually be needed. Some example output could also be expanded upon as needed.", "created_at": "2017-02-17T06:30:16Z", "updated_at": "2017-02-17T06:49:40Z", "closed_at": "2017-02-17T06:36:23Z", "merged_at": "2017-02-17T06:36:23Z", "merge_commit_sha": "5f10d5b1374e9853717c3bcdd9f4d67077396098", "assignee": null, "milestone": null, "draft": 0, "head": "b398c8980c6fe1989e70398156e0ab8057e9584c", "base": "e33fe98ff8da7871e4b51be8fdfeaee993b06fbb", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/67", "merged_by": null} {"id": 106677272, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2Njc3Mjcy", "number": 68, "state": "closed", "locked": 0, "title": "Fix for LoadCharacterProperties", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "The PropertiesBools doesn't always get set on character upon login, this change should correct that issue.", "created_at": "2017-02-17T06:47:15Z", "updated_at": "2017-02-17T06:49:45Z", "closed_at": "2017-02-17T06:47:29Z", "merged_at": "2017-02-17T06:47:29Z", "merge_commit_sha": "75721508e4ace60497a12c471404ed2d97c3504f", "assignee": null, "milestone": null, "draft": 0, "head": "9bb1142dc28b1f10e53c6ce4ddc932c937447915", "base": "5f10d5b1374e9853717c3bcdd9f4d67077396098", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/68", "merged_by": null} {"id": 106684356, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2Njg0MzU2", "number": 69, "state": "closed", "locked": 0, "title": "Friends List", "user": {"value": 22650655, "label": "sbaum23"}, "body": "Adds the ability to add/remove friends as well as see the list of friends when you log on. The status is also accurate and will change as friends log on/off. I added a Logout method to the Player class for putting stuff in there that needs to be done when a player logs off (like sending a packet to all your online friends that you are offline).\r\n\r\nThe extra commits are due to rebasing.\r\n\r\nThis resolves issue #39.", "created_at": "2017-02-17T07:58:52Z", "updated_at": "2017-02-18T04:38:34Z", "closed_at": "2017-02-18T04:38:34Z", "merged_at": null, "merge_commit_sha": "f207570aa52d0bd383ba9058d963a9463c9a0d23", "assignee": null, "milestone": null, "draft": 0, "head": "7239c6a8c43272e9e507b4bceb4c6a3ccd84eb19", "base": "75721508e4ace60497a12c471404ed2d97c3504f", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/69", "merged_by": null} {"id": 106802815, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2ODAyODE1", "number": 70, "state": "closed", "locked": 0, "title": "code cleanup, plus introduction of a couple new world object heirarchy types", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "", "created_at": "2017-02-17T20:06:05Z", "updated_at": "2017-05-30T15:34:17Z", "closed_at": "2017-02-17T20:20:43Z", "merged_at": "2017-02-17T20:20:43Z", "merge_commit_sha": "f22695ac1b7e7aa89a335960d5a16bc24525b8e3", "assignee": null, "milestone": null, "draft": 0, "head": "249628f48d298a8e002a153aaed26e3b3c4c6ece", "base": "75721508e4ace60497a12c471404ed2d97c3504f", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/70", "merged_by": null} {"id": 106848125, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2ODQ4MTI1", "number": 71, "state": "closed", "locked": 0, "title": "Issue 39 friends list", "user": {"value": 22650655, "label": "sbaum23"}, "body": "Resolves #39 ", "created_at": "2017-02-18T04:40:22Z", "updated_at": "2017-02-18T04:46:34Z", "closed_at": "2017-02-18T04:46:34Z", "merged_at": "2017-02-18T04:46:34Z", "merge_commit_sha": "7ed6cd44ddaba15686f20374e3a8b22e5b195eff", "assignee": null, "milestone": null, "draft": 0, "head": "7239c6a8c43272e9e507b4bceb4c6a3ccd84eb19", "base": "f22695ac1b7e7aa89a335960d5a16bc24525b8e3", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/71", "merged_by": null} {"id": 106850209, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2ODUwMjA5", "number": 73, "state": "closed", "locked": 0, "title": "Network Refactor", "user": {"value": 12808515, "label": "Zegeger"}, "body": "Created GameMessage class. Currently GameEvent inherits from\r\nGameMessage.\r\nGameMessage just build MemoryStream for message.\r\nMoved all opcodes that are outside of GameEvent in protocol over to be a\r\nGameMessage.\r\nCreated some basic (test) functions in NetworkManager to send the\r\nGameMessages.\r\nLots more to do, but this compiles and logs in successfully.\r\nNeed to move group to per message property.\r\nNeed to create per session packet queue.\r\nNeed to rewrite packet pipe to better process multifragment packets.\r\nNeed to finish testing multifragment packets and get working.", "created_at": "2017-02-18T06:02:43Z", "updated_at": "2017-02-18T15:08:24Z", "closed_at": "2017-02-18T15:08:24Z", "merged_at": "2017-02-18T15:08:24Z", "merge_commit_sha": "6255c4f2143a91eee2703a330ca5e177ac2ad5d1", "assignee": null, "milestone": null, "draft": 0, "head": "a145eafefd14a25a27aba164c5f35b5ca333be08", "base": "8744cb1887673d28bb7f3c6b039cd6b6453b2613", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/73", "merged_by": null} {"id": 106853740, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2ODUzNzQw", "number": 74, "state": "closed", "locked": 0, "title": "Implemented \"/friends remove -all\", \"/friends old\" and Appear Offline.", "user": {"value": 22650655, "label": "sbaum23"}, "body": "/friends old just sends a chat packet saying that the command isn't used in the emu.\r\n\r\nI also had to fix a bug in two WorldManager methods that I added in an earlier PR. There was a scenario where the Session.Player was null and it was causing the LINQ query to throw an exception.\r\n\r\nAppear Offline is actually part of a GameAction that is used for setting many different options. The Handle method for it now just has a switch in it (there are ~52 options) for now but we may want to go to something else in the future as we add new features.\r\n\r\nResolves #72 ", "created_at": "2017-02-18T08:15:49Z", "updated_at": "2017-02-18T13:14:27Z", "closed_at": "2017-02-18T13:14:27Z", "merged_at": "2017-02-18T13:14:26Z", "merge_commit_sha": "8744cb1887673d28bb7f3c6b039cd6b6453b2613", "assignee": null, "milestone": null, "draft": 0, "head": "76714d46e6138be302ee7d6134eaafd0b572992e", "base": "7ed6cd44ddaba15686f20374e3a8b22e5b195eff", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/74", "merged_by": null} {"id": 106866864, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2ODY2ODY0", "number": 75, "state": "closed", "locked": 0, "title": "Fixed update .sql file names to conform to documented standard.", "user": {"value": 10608427, "label": "Mag-nus"}, "body": "", "created_at": "2017-02-18T16:20:28Z", "updated_at": "2017-02-18T16:20:49Z", "closed_at": "2017-02-18T16:20:49Z", "merged_at": "2017-02-18T16:20:49Z", "merge_commit_sha": "66bcd0823dee51156324dce5563487e0607b100b", "assignee": null, "milestone": null, "draft": 0, "head": "e55c877ac418403e33a83da5cda9f039675c7dc5", "base": "6255c4f2143a91eee2703a330ca5e177ac2ad5d1", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/75", "merged_by": null} {"id": 106869620, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2ODY5NjIw", "number": 76, "state": "closed", "locked": 0, "title": "Reworked Appear Offline functionality", "user": {"value": 22650655, "label": "sbaum23"}, "body": "Reworked appear offline functionality so that it doesn't change IsOnline, which other things might depend on.\r\n\r\nAlso fixed issue with sending friends list updates that was introduced with the network refactor merge.", "created_at": "2017-02-18T17:33:27Z", "updated_at": "2017-02-20T05:17:46Z", "closed_at": "2017-02-20T05:17:46Z", "merged_at": "2017-02-20T05:17:46Z", "merge_commit_sha": "e3236e4bd6138aea1f408e74761b27353dd0fb84", "assignee": null, "milestone": null, "draft": 0, "head": "0ca1e2c8415da11198a81a380b0da0ec7fe3454a", "base": "52cc792cc3731d07a9195a8aeea66f8b52782e08", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/76", "merged_by": null} {"id": 106892387, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2ODkyMzg3", "number": 77, "state": "closed", "locked": 0, "title": "Add AccessLevel to Accounts", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "This addresses issue #44 and also contains some of PR #58 rolled in. \r\n\r\nOf note, CommandManager will now respect AccessLevels specified where previously it didn't care.\r\n\r\nSet-AccountAccess will set the account's accesslevel\r\nSet-CharacterAccess will set the character's accesslevel\r\n\r\nCommandManager only cares about character's accesslevel as of this PR. Per discussion with @Mogwai-AC I think we should code up a SUDO like command which then references to Account's AccessLevel for privileges. This way we emulate how it seemed to work on AC live (per character) in addition to then allowing accounts to self-promote characters, as they did with the admin button on character creation, as well as other admin functions on non-admin characters. \r\n\r\nProbably something along the lines of \"SUDO set-characteraccess [mynewcharacter] sentinel\" which just does a check back to session.accesslevel.", "created_at": "2017-02-19T07:51:49Z", "updated_at": "2017-02-20T05:30:22Z", "closed_at": "2017-02-20T05:09:09Z", "merged_at": "2017-02-20T05:09:09Z", "merge_commit_sha": "52cc792cc3731d07a9195a8aeea66f8b52782e08", "assignee": null, "milestone": null, "draft": 0, "head": "3447c2c74dcfb639f2ed268fe2caa913562aa1df", "base": "a01929c6932511eb8b32dabd94e4d46256699e3b", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/77", "merged_by": null} {"id": 106922129, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2OTIyMTI5", "number": 78, "state": "closed", "locked": 0, "title": "Chat enums added. Say/Tell work, but names not clickable. Network Mes\u2026 \u2026sage framework cosmetic cleanups.", "user": {"value": 10608427, "label": "Mag-nus"}, "body": "", "created_at": "2017-02-19T23:26:00Z", "updated_at": "2017-02-19T23:27:05Z", "closed_at": "2017-02-19T23:27:04Z", "merged_at": "2017-02-19T23:27:04Z", "merge_commit_sha": "a01929c6932511eb8b32dabd94e4d46256699e3b", "assignee": null, "milestone": null, "draft": 0, "head": "4145be7f2290694e2dc4e3f9d6b2e95fad6c2866", "base": "66bcd0823dee51156324dce5563487e0607b100b", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/78", "merged_by": null} {"id": 106941883, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2OTQxODgz", "number": 79, "state": "closed", "locked": 0, "title": "Fixing changes to Fragment and Session.", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-02-20T05:27:58Z", "updated_at": "2017-02-20T05:30:11Z", "closed_at": "2017-02-20T05:28:12Z", "merged_at": "2017-02-20T05:28:12Z", "merge_commit_sha": "023ccf8f8f85c325c25e8c77c79ed1c8e990b382", "assignee": null, "milestone": null, "draft": 0, "head": "87477bde65198d4455841b61dc1871a1120e834e", "base": "e3236e4bd6138aea1f408e74761b27353dd0fb84", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/79", "merged_by": null} {"id": 107108635, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3MTA4NjM1", "number": 81, "state": "closed", "locked": 0, "title": "Changed Find fn's in WorldManager from InWorld to IsOnline.. fixed pl\u2026", "user": {"value": 10608427, "label": "Mag-nus"}, "body": "\u2026ayer GUID, added GameEventDisplay events.", "created_at": "2017-02-21T03:11:14Z", "updated_at": "2017-02-21T03:11:34Z", "closed_at": "2017-02-21T03:11:34Z", "merged_at": "2017-02-21T03:11:34Z", "merge_commit_sha": "68f0ef3c0bb2fed981c5e4fa4f97ea8388d7de53", "assignee": null, "milestone": null, "draft": 0, "head": "38cfe5b504655b5739919b77c3f741048c7447c1", "base": "023ccf8f8f85c325c25e8c77c79ed1c8e990b382", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/81", "merged_by": null} {"id": 107122261, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3MTIyMjYx", "number": 82, "state": "closed", "locked": 0, "title": "Changed ParseCommand to support the use of quotes", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "This change allows any command to work with quotes to better delimit some parameters.\r\n\r\nAn example of this would be for commands that require the use of a character name which has spaces in it such as Maia the Lawyer. \r\n\r\nThe change results in the following command working as expected:\r\n\r\nset-characteraccess \"maia the laywer\" admin\r\n\r\nAnother example this change would fix would be the eventual problem with teleto which it gets wired-up.\r\nWithout the change, the command reads like teleto maia the laywer and would try to teleport to the character named maia instead of the full name. teleto \"maia the lawyer\" then corrects this issue and finds the right player.", "created_at": "2017-02-21T06:06:33Z", "updated_at": "2017-02-27T15:07:24Z", "closed_at": "2017-02-21T12:31:10Z", "merged_at": "2017-02-21T12:31:10Z", "merge_commit_sha": "d9fcc07cd7e272c67dea8ff718d3a6e872910efb", "assignee": null, "milestone": null, "draft": 0, "head": "0c4db601a881dff3e5d84f657c258416289ae096", "base": "68f0ef3c0bb2fed981c5e4fa4f97ea8388d7de53", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/82", "merged_by": null} {"id": 107336448, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3MzM2NDQ4", "number": 84, "state": "closed", "locked": 0, "title": "Skill spend upper bound check too prevent xp crash, also Max Skills!", "user": {"value": 37453, "label": "fantoms"}, "body": "Added an Ability and Skill check in Source/ACE/Entity/Player.cs, too attempt in preventing server from crashing when spending XP points.", "created_at": "2017-02-22T05:09:25Z", "updated_at": "2017-03-02T13:03:44Z", "closed_at": "2017-03-02T13:03:43Z", "merged_at": null, "merge_commit_sha": "e77b4c04406237ec6e9d5c533160503bc2b9b60f", "assignee": null, "milestone": null, "draft": 0, "head": "e9ce87ad8fb1dc1000f63b8618221b7f425762ae", "base": "d9fcc07cd7e272c67dea8ff718d3a6e872910efb", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/84", "merged_by": null} {"id": 107618205, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3NjE4MjA1", "number": 85, "state": "closed", "locked": 0, "title": "Network Channels + Player Effect to Test @effect 20", "user": {"value": 25387933, "label": "Forbiddenz"}, "body": "Forgive my get newb..\r\n\r\nI added a method of picking your channels on each message type..\r\n\r\nExample of creating a message with channel can be found..\r\n```\r\npublic class GameMessageEffect : GameMessageOnChannel\r\n\r\n//using the ChannelMessages.\r\n //plays particle effect like spell casting or bleed etc..\r\n public void PlayParticleEffect(uint effectid)\r\n {\r\n var effectevent = new GameMessageEffect(this.Guid, effectid);\r\n NetworkManager.SendWorldChannelMessages(Session, new GameMessageOnChannel[] { effectevent });\r\n }\r\n```", "created_at": "2017-02-23T12:51:12Z", "updated_at": "2017-02-23T13:41:57Z", "closed_at": "2017-02-23T13:41:57Z", "merged_at": "2017-02-23T13:41:57Z", "merge_commit_sha": "88aa39773126a28d788b901454f28e12d5cb68cf", "assignee": null, "milestone": null, "draft": 0, "head": "af5e44e30b4e523c1c341ba9c937710719d5ca31", "base": "d9fcc07cd7e272c67dea8ff718d3a6e872910efb", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/85", "merged_by": null} {"id": 107642912, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3NjQyOTEy", "number": 86, "state": "closed", "locked": 0, "title": "Group chat code added. Chat channels are currently hard coded. Chat i\u2026", "user": {"value": 10608427, "label": "Mag-nus"}, "body": "\u2026s sent to all players, even if they aren't subscribed to a channel.\r\n\r\nUpdated StatusMessageType enums. They need work still.", "created_at": "2017-02-23T15:06:27Z", "updated_at": "2017-02-23T15:06:44Z", "closed_at": "2017-02-23T15:06:44Z", "merged_at": "2017-02-23T15:06:44Z", "merge_commit_sha": "be6f728c328f8be17c3806d83cb2b3fe5d965fa1", "assignee": null, "milestone": null, "draft": 0, "head": "d272930b2b5f9c167dfe89569fd3ac60dc68324d", "base": "88aa39773126a28d788b901454f28e12d5cb68cf", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/86", "merged_by": null} {"id": 107694772, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3Njk0Nzcy", "number": 87, "state": "closed", "locked": 0, "title": "DO NOT MERGE - for reviewing work in progress only", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "work in progress, committing for others to review", "created_at": "2017-02-23T19:27:26Z", "updated_at": "2017-02-24T02:57:35Z", "closed_at": "2017-02-24T02:57:35Z", "merged_at": null, "merge_commit_sha": "20f08d909129280d29b6cf40d8c232a734de1968", "assignee": null, "milestone": null, "draft": 0, "head": "e17e09cb0a2e12b459da7acaffada8a2fa02a5a1", "base": "be6f728c328f8be17c3806d83cb2b3fe5d965fa1", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/87", "merged_by": null} {"id": 107945035, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3OTQ1MDM1", "number": 88, "state": "closed", "locked": 0, "title": "DDD stub code, AllegianceUpdate stub, IdentifyObject stub", "user": {"value": 10608427, "label": "Mag-nus"}, "body": "", "created_at": "2017-02-25T03:51:39Z", "updated_at": "2017-02-25T03:51:52Z", "closed_at": "2017-02-25T03:51:52Z", "merged_at": "2017-02-25T03:51:52Z", "merge_commit_sha": "c78d073e7d9db6f4a15e2d8f0063ac01212b0b50", "assignee": null, "milestone": null, "draft": 0, "head": "49576dee580cf3dc8a1cbae767f20cdc9f71cdd0", "base": "be6f728c328f8be17c3806d83cb2b3fe5d965fa1", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/88", "merged_by": null} {"id": 107950473, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3OTUwNDcz", "number": 89, "state": "closed", "locked": 0, "title": "Corrected Teleloc command to work with exact numbers", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": " as provided by /loc command from client.", "created_at": "2017-02-25T07:05:25Z", "updated_at": "2017-02-26T06:03:15Z", "closed_at": "2017-02-25T12:39:27Z", "merged_at": "2017-02-25T12:39:27Z", "merge_commit_sha": "7889b166b644281661a3ad99be129a5b318a6b0c", "assignee": null, "milestone": null, "draft": 0, "head": "3d51fa7dc1314601d7cd00ef2c98483065bc3be0", "base": "c78d073e7d9db6f4a15e2d8f0063ac01212b0b50", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/89", "merged_by": null} {"id": 107950488, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3OTUwNDg4", "number": 90, "state": "closed", "locked": 0, "title": "Rewrote network stack", "user": {"value": 12808515, "label": "Zegeger"}, "body": "Rewrote network stack to support buffering messages and then dispatching as 1 or more combined or split packets. EncryptedChecksum seems to work across the board. Sending Packets with fragments from different groups does not seem to cause an issue.\r\nPackets are queued and sent based on calls from the Engine. Configurable delay (5ms currently)\r\nReworked CachedPackets some, and now clear the list based on AckSeq packets from client. Sending AckSeq packets to the client seems to cause issues currently, need more testing.\r\nMoved some things around to fit this new model.\r\nPut message Group as a property on each message. And send this in fragment. Sounds now work again.\r\nCreated new packet classes to encapsulate data in AuthenticationManager and CharacterManager and allow them to be send through the same model (though packets will never be manipulated).\r\n", "created_at": "2017-02-25T07:06:09Z", "updated_at": "2017-02-27T11:28:37Z", "closed_at": "2017-02-27T11:28:37Z", "merged_at": "2017-02-27T11:28:37Z", "merge_commit_sha": "69dc8aef642f4f98682c2f99226f29d089d8624c", "assignee": null, "milestone": null, "draft": 0, "head": "ed49ce86dc49ef0f97fd08d54bcedae47bbecc26", "base": "c78d073e7d9db6f4a15e2d8f0063ac01212b0b50", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/90", "merged_by": null} {"id": 107992120, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3OTkyMTIw", "number": 92, "state": "closed", "locked": 0, "title": "Add in support for the old global Admin channels", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Resurrected the various Admin global channels used by the Advocates, Sentinels, Envoys, and Admins, stubbed the @on and @off commands and added support for @index and @clist commands.\r\n\r\nSome TODOs have been put into the code for when we get a plan in place for for db loading/saving of channel subscriptions, as well as properly set subscriptions for that matter.", "created_at": "2017-02-26T06:00:53Z", "updated_at": "2017-02-27T15:04:42Z", "closed_at": "2017-02-27T14:38:23Z", "merged_at": null, "merge_commit_sha": "c133fcd9891411ed8570825f73d9b063877d3f6b", "assignee": null, "milestone": null, "draft": 0, "head": "bf1cefbe1274459b1cbd1788f395b2bd51ab8170", "base": "7889b166b644281661a3ad99be129a5b318a6b0c", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/92", "merged_by": null} {"id": 108022817, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4MDIyODE3", "number": 93, "state": "closed", "locked": 0, "title": "Support easy permissions in ACEmulator", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Improved best of both worlds scenario.\r\n\r\nServer operators have the choice to emulate access permissions via more complicated system used on official worlds or they can choose to use simplified account based permissions which would become the default install option for ACEmulator.", "created_at": "2017-02-26T21:25:56Z", "updated_at": "2017-02-27T15:04:36Z", "closed_at": "2017-02-27T13:51:26Z", "merged_at": null, "merge_commit_sha": "0d829822746b5a1e4784ee31dab23f5236bc6df3", "assignee": null, "milestone": null, "draft": 0, "head": "b978b3b010869e927675fff96d4f2932ebdb9542", "base": "7889b166b644281661a3ad99be129a5b318a6b0c", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/93", "merged_by": null} {"id": 108117640, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4MTE3NjQw", "number": 94, "state": "closed", "locked": 0, "title": "Support easy permissions in ACEmulator", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Improved best of both worlds scenario.\r\n\r\nServer operators have the choice to emulate access permissions via more complicated system used on official worlds or they can choose to use simplified account based permissions which would become the default install option for ACEmulator.", "created_at": "2017-02-27T13:51:09Z", "updated_at": "2017-02-27T15:04:32Z", "closed_at": "2017-02-27T14:04:24Z", "merged_at": "2017-02-27T14:04:24Z", "merge_commit_sha": "ded3c9a58125123d8e638aac0c15c285535a94e5", "assignee": null, "milestone": null, "draft": 0, "head": "53e7b84da5e975d55b9a1ae6339c37357e4e6663", "base": "69dc8aef642f4f98682c2f99226f29d089d8624c", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/94", "merged_by": null} {"id": 108126542, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4MTI2NTQy", "number": 95, "state": "closed", "locked": 0, "title": "Add in support for the old global Admin channels", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Resurrected the various Admin global channels used by the Advocates, Sentinels, Envoys, and Admins, stubbed the @on and @off commands and added support for @index and @clist commands.\r\n\r\nSome TODOs have been put into the code for when we get a plan in place for for db loading/saving of channel subscriptions, as well as properly set subscriptions for that matter.", "created_at": "2017-02-27T14:37:58Z", "updated_at": "2017-02-27T15:04:28Z", "closed_at": "2017-02-27T14:49:37Z", "merged_at": "2017-02-27T14:49:37Z", "merge_commit_sha": "d32c6494668a2dac39d48f67e1772a8a8cb93dca", "assignee": null, "milestone": null, "draft": 0, "head": "90cf2a231adcc07fe3de77d223bde6be9db2dcac", "base": "ded3c9a58125123d8e638aac0c15c285535a94e5", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/95", "merged_by": null} {"id": 108258291, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4MjU4Mjkx", "number": 97, "state": "closed", "locked": 0, "title": "Fix Account.Salt not being stored in DB", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-02-28T04:51:54Z", "updated_at": "2017-03-01T06:05:39Z", "closed_at": "2017-02-28T14:46:45Z", "merged_at": "2017-02-28T14:46:45Z", "merge_commit_sha": "2e0b674c82aedabfb0cd04723a98a11d2a7fe0af", "assignee": null, "milestone": null, "draft": 0, "head": "72f098069d7484221b08041d1cae1d84086b1cda", "base": "d32c6494668a2dac39d48f67e1772a8a8cb93dca", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/97", "merged_by": null} {"id": 108263926, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4MjYzOTI2", "number": 98, "state": "closed", "locked": 0, "title": "Correcting a few bugs with ChatChannel", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-02-28T05:59:37Z", "updated_at": "2017-03-01T06:05:35Z", "closed_at": "2017-02-28T13:24:10Z", "merged_at": "2017-02-28T13:24:10Z", "merge_commit_sha": "990eb923e7488b898fc70babae251903cbc28c1f", "assignee": null, "milestone": null, "draft": 0, "head": "e92f114685e6143ac3957b3ca9f848cf4f33bad9", "base": "d32c6494668a2dac39d48f67e1772a8a8cb93dca", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/98", "merged_by": null} {"id": 108463810, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4NDYzODEw", "number": 99, "state": "closed", "locked": 0, "title": "Character options are saving/loading from database.", "user": {"value": 22650655, "label": "sbaum23"}, "body": "Resolves issue #80 ", "created_at": "2017-03-01T04:04:17Z", "updated_at": "2017-03-02T12:51:03Z", "closed_at": "2017-03-02T12:51:03Z", "merged_at": "2017-03-02T12:51:03Z", "merge_commit_sha": "bde99ece02c9b0c6116aff4013a98a9d50fb3dc4", "assignee": null, "milestone": null, "draft": 0, "head": "06de170aee121d9d949c21832accedc6c6f7b404", "base": "2e0b674c82aedabfb0cd04723a98a11d2a7fe0af", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/99", "merged_by": null} {"id": 108472067, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4NDcyMDY3", "number": 100, "state": "closed", "locked": 0, "title": "Option to send Internal IP as World Host to client", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Allows a server operator to configure their external IP for clients connecting from the internet as well as allowing clients connecting on the intranet to use the local network IP address of the server remaining on local network instead of going out to come back in.\r\n\r\nThe options are configurable via config.json and set to false by default.", "created_at": "2017-03-01T05:50:28Z", "updated_at": "2017-03-06T06:38:50Z", "closed_at": "2017-03-02T12:51:47Z", "merged_at": "2017-03-02T12:51:47Z", "merge_commit_sha": "90b1967df4900475e6d686c36fac7654d0e740a7", "assignee": null, "milestone": null, "draft": 0, "head": "59966588ee285749aac89e771adc68e9bdaa3c69", "base": "2e0b674c82aedabfb0cd04723a98a11d2a7fe0af", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/100", "merged_by": null} {"id": 108616423, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4NjE2NDIz", "number": 101, "state": "closed", "locked": 0, "title": "World object - Seralization with Example", "user": {"value": 25387933, "label": "Forbiddenz"}, "body": "World Object with Example @spawntest.\r\nThis will only work one time because ACE dont have any real way to increment guids properly.\r\nStill could use some cleanup, but this is a great start and very useful so I am PRing it now.", "created_at": "2017-03-01T19:59:23Z", "updated_at": "2017-03-01T21:05:52Z", "closed_at": "2017-03-01T21:05:52Z", "merged_at": null, "merge_commit_sha": "f56f81c9caef2a8f3b89f2da7260f77403ec93a5", "assignee": null, "milestone": null, "draft": 0, "head": "f8791e97784c689f6555f6e587462dab5bad8da1", "base": "2e0b674c82aedabfb0cd04723a98a11d2a7fe0af", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/101", "merged_by": null} {"id": 108653372, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4NjUzMzcy", "number": 102, "state": "closed", "locked": 0, "title": "World object - Improvement + Lifestone Test Object", "user": {"value": 25387933, "label": "Forbiddenz"}, "body": "Use @spawntest to spawn a life stone.\r\n\r\n", "created_at": "2017-03-01T23:28:15Z", "updated_at": "2017-03-02T22:47:00Z", "closed_at": "2017-03-02T12:55:01Z", "merged_at": "2017-03-02T12:55:01Z", "merge_commit_sha": "856a8a192efdd020fb4983d3217f06d9dc2bb4ac", "assignee": null, "milestone": null, "draft": 0, "head": "b60fa81ea4dd15d7eb0df4715fe7e9e083f267b4", "base": "90b1967df4900475e6d686c36fac7654d0e740a7", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/102", "merged_by": null} {"id": 108831238, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4ODMxMjM4", "number": 103, "state": "closed", "locked": 0, "title": "Quick fixes 03022017", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-03-02T19:21:20Z", "updated_at": "2017-03-02T20:08:23Z", "closed_at": "2017-03-02T20:08:23Z", "merged_at": "2017-03-02T20:08:23Z", "merge_commit_sha": "033c6ca23ac00c9a1e0949ed7baf2c092e626a12", "assignee": null, "milestone": null, "draft": 0, "head": "71e6469b853043b8f03202d329d3792eb4d984c3", "base": "856a8a192efdd020fb4983d3217f06d9dc2bb4ac", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/103", "merged_by": null} {"id": 108840458, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4ODQwNDU4", "number": 104, "state": "closed", "locked": 0, "title": "portal.dat and cell.dat loading (issue #3)", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "", "created_at": "2017-03-02T20:09:02Z", "updated_at": "2017-05-30T15:34:36Z", "closed_at": "2017-03-04T12:59:37Z", "merged_at": "2017-03-04T12:59:37Z", "merge_commit_sha": "c4793ec44fdbcbdfb15db3aa38d071c512375d3b", "assignee": null, "milestone": null, "draft": 0, "head": "da3dca42a73e68e204bbc908c984aba9398909e4", "base": "7ce98a9f557f3a7ac0fe10e77891c57a72067a01", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/104", "merged_by": null} {"id": 108883111, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA4ODgzMTEx", "number": 105, "state": "closed", "locked": 0, "title": "More WorldObject Fixes", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-03-03T00:32:57Z", "updated_at": "2017-03-04T10:27:26Z", "closed_at": "2017-03-03T14:05:09Z", "merged_at": "2017-03-03T14:05:09Z", "merge_commit_sha": "7ce98a9f557f3a7ac0fe10e77891c57a72067a01", "assignee": null, "milestone": null, "draft": 0, "head": "15306e9d0414bafc9c4b1b2ae3621d3584054c39", "base": "033c6ca23ac00c9a1e0949ed7baf2c092e626a12", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/105", "merged_by": null} {"id": 109111509, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5MTExNTA5", "number": 106, "state": "closed", "locked": 0, "title": "Continuing SO's WorldObject rework", "user": {"value": 25351661, "label": "Mogwai-TheFurry"}, "body": "", "created_at": "2017-03-04T15:39:17Z", "updated_at": "2017-05-30T15:34:35Z", "closed_at": "2017-03-06T12:33:26Z", "merged_at": "2017-03-06T12:33:26Z", "merge_commit_sha": "f3f26a22dff18a649afc727c6d66e5acacd1d494", "assignee": null, "milestone": null, "draft": 0, "head": "02d91aa2e90dbd530ac8151071b6466498013689", "base": "c4793ec44fdbcbdfb15db3aa38d071c512375d3b", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/106", "merged_by": null} {"id": 109174375, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5MTc0Mzc1", "number": 107, "state": "closed", "locked": 0, "title": "Add DAT loading into main process", "user": {"value": 10137, "label": "ghost"}, "body": "Obtains the two DAT file locations from the config.json file. Code also handles file not found exceptions and prints out an error.", "created_at": "2017-03-06T00:43:14Z", "updated_at": "2017-10-18T14:07:36Z", "closed_at": "2017-03-07T01:30:51Z", "merged_at": "2017-03-07T01:30:51Z", "merge_commit_sha": "c7653a3c812479a9e053105c82df0c7792b86e72", "assignee": null, "milestone": null, "draft": 0, "head": "5b9ec8db5042f64407e260a6483dde57ef1a4443", "base": "c4793ec44fdbcbdfb15db3aa38d071c512375d3b", "author_association": "NONE", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/107", "merged_by": null} {"id": 109192396, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5MTkyMzk2", "number": 108, "state": "closed", "locked": 0, "title": "Time returns to Dereth", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Rain rain go away...\r\n\r\nAdded time to Dereth. Once the server starts, the clock is set and is hardcoded at this point to start at the current Lore corrected DerethDateTime. \r\n\r\n@time command wired up.\r\n\r\nTime progresses as it did on retail and does not reset in between sessions as long as server remains running.\r\n\r\nThere are several functions within DerethDateTime that could help enable some interesting ideas in the future such as \"dynamic seasons\" and changing spawns based on TimeOfDay (like Graveyard) for examples. It would depend on if we're able to build in time-checking logic to spawnable/generator objects, which I assume we would be doing, especially once we get around to rebuilding the GY area.\r\n\r\nTODO: Save the progression of ServerTime periodically to be recalled when server is offline'd/online'd.\r\nTODO: Setup a variable in Config.json and ConfigManager to allow the server operator to pick a date to start the server from.", "created_at": "2017-03-06T05:28:29Z", "updated_at": "2017-03-10T04:55:10Z", "closed_at": "2017-03-07T01:29:35Z", "merged_at": "2017-03-07T01:29:34Z", "merge_commit_sha": "de9636f9e7211b60ecf0ac0654268039ff1c8383", "assignee": null, "milestone": null, "draft": 0, "head": "3010f28575580b47581943c98fe5d5efac7e98e9", "base": "c4793ec44fdbcbdfb15db3aa38d071c512375d3b", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/108", "merged_by": null} {"id": 109324275, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5MzI0Mjc1", "number": 109, "state": "closed", "locked": 0, "title": "World Object Fix", "user": {"value": 25387933, "label": "Forbiddenz"}, "body": "", "created_at": "2017-03-06T18:55:41Z", "updated_at": "2017-03-06T22:38:36Z", "closed_at": "2017-03-06T22:38:36Z", "merged_at": null, "merge_commit_sha": "ac4848e6f4db25a59c5588ac068882a06bf50259", "assignee": null, "milestone": null, "draft": 0, "head": "331d37a061a4270da1c09f356cf82849f1c98bb4", "base": "f3f26a22dff18a649afc727c6d66e5acacd1d494", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/109", "merged_by": null} {"id": 109342066, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5MzQyMDY2", "number": 110, "state": "closed", "locked": 0, "title": "A fix to Prevent Skill Spend server crash and allow for max Ranked Skills (Infinity!)", "user": {"value": 37453, "label": "fantoms"}, "body": "- Renamed abilityUpdate to skillUpdate, to reflect the correct function/variables.\r\n\r\n- Refactored the SpendXp skills function to send a gamemessage on failed skill updates that prevents client from locking up the Rank Up interface buttons.\r\n\r\n- Added an upper-bounds check to prevent skills from going out of bounds.\r\n\r\n- Created an offset variable to prevent +10 from going out of bounds when the rank is to high.\r\n\r\n- Changed the comment describing known issues on skillSpend", "created_at": "2017-03-06T20:30:18Z", "updated_at": "2017-03-07T01:29:18Z", "closed_at": "2017-03-07T01:29:18Z", "merged_at": "2017-03-07T01:29:18Z", "merge_commit_sha": "2b59fc2d57dea3933a4467eda9b3dd03b1407cf0", "assignee": null, "milestone": null, "draft": 0, "head": "352ce9c3143800214e5cb6ceed79ae53b237fad3", "base": "f3f26a22dff18a649afc727c6d66e5acacd1d494", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/110", "merged_by": null} {"id": 109367076, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5MzY3MDc2", "number": 111, "state": "closed", "locked": 0, "title": "Life stone Fix = World Object Fix Usable", "user": {"value": 25387933, "label": "Forbiddenz"}, "body": "Adding proper flags to World Object Usable.", "created_at": "2017-03-06T22:47:12Z", "updated_at": "2017-03-07T09:40:25Z", "closed_at": "2017-03-07T01:31:04Z", "merged_at": "2017-03-07T01:31:04Z", "merge_commit_sha": "4113108b99df8b49ed819b78bcfbcff469bf810d", "assignee": null, "milestone": null, "draft": 0, "head": "c48f8645e8e789cfa066b1e84332b5dfe104c3f0", "base": "f3f26a22dff18a649afc727c6d66e5acacd1d494", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/111", "merged_by": null} {"id": 109402490, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5NDAyNDkw", "number": 112, "state": "closed", "locked": 0, "title": "Save default character options when creating a character.", "user": {"value": 22650655, "label": "sbaum23"}, "body": "When creating a character this will set several character options to true and save to the database.\r\n\r\nThe options set to true are the same ones when you click the \"Default\" button in the options tab.", "created_at": "2017-03-07T04:00:31Z", "updated_at": "2017-03-07T13:14:03Z", "closed_at": "2017-03-07T13:14:03Z", "merged_at": "2017-03-07T13:14:03Z", "merge_commit_sha": "93b5d5b4c0494c6008833d6fabf96b7d43c5228e", "assignee": null, "milestone": null, "draft": 0, "head": "cea950f9db3847a64f71bc6613371230b6504878", "base": "4113108b99df8b49ed819b78bcfbcff469bf810d", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/112", "merged_by": null} {"id": 109408343, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5NDA4MzQz", "number": 113, "state": "closed", "locked": 0, "title": "Max Rank Fireworks and Correct Skill Rank Up text Color", "user": {"value": 37453, "label": "fantoms"}, "body": "- I could not find a way to check the skill rank after it was set, so I added a function to check max rank. If the function returns a Boolean true, then the server will play fireworks when reached max rank\r\n\r\n- Changed the message type to Advancement when increasing skills too reflect the correct skill advancement chat color.\r\n\r\n- Added a few summary comments and fixed remarks/known issues.", "created_at": "2017-03-07T05:17:04Z", "updated_at": "2017-05-23T15:53:42Z", "closed_at": "2017-03-07T13:45:27Z", "merged_at": "2017-03-07T13:45:27Z", "merge_commit_sha": "555c39fb937d85f8317a21730a693ea8e57115a8", "assignee": null, "milestone": null, "draft": 0, "head": "99077ee9b008312f8e7ff33ccb05f1fe5346d98d", "base": "4113108b99df8b49ed819b78bcfbcff469bf810d", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/113", "merged_by": null} {"id": 109814948, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5ODE0OTQ4", "number": 114, "state": "closed", "locked": 0, "title": "Added GetClientCommands and GetConsoleCommands", "user": {"value": 25650194, "label": "Thwargle"}, "body": "Added the ability to request a list of console commands and client commands from the console.\r\nAdded the ability to request a list of client commands from the game's chat window.", "created_at": "2017-03-09T00:22:27Z", "updated_at": "2017-03-15T19:04:45Z", "closed_at": "2017-03-15T19:04:45Z", "merged_at": null, "merge_commit_sha": "c572cb56f0ee63cabe9d6a40ac2965e3b05266e3", "assignee": null, "milestone": null, "draft": 0, "head": "4edc9ea8407e17acfa2cc25aa2cf4f180bd64600", "base": "555c39fb937d85f8317a21730a693ea8e57115a8", "author_association": "NONE", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/114", "merged_by": null} {"id": 109819570, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5ODE5NTcw", "number": 115, "state": "closed", "locked": 0, "title": "Add host & port to connect messages", "user": {"value": 26289176, "label": "Zorgle"}, "body": "", "created_at": "2017-03-09T01:04:31Z", "updated_at": "2017-03-09T01:26:45Z", "closed_at": "2017-03-09T01:26:45Z", "merged_at": "2017-03-09T01:26:45Z", "merge_commit_sha": "0850963d9efadbccd0de6f9dd990f61c5076b854", "assignee": null, "milestone": null, "draft": 0, "head": "bc0a5f343e22295662067adf2039d8f6322ac4bc", "base": "555c39fb937d85f8317a21730a693ea8e57115a8", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/115", "merged_by": null} {"id": 109856539, "node_id": "MDExOlB1bGxSZXF1ZXN0MTA5ODU2NTM5", "number": 116, "state": "closed", "locked": 0, "title": "Character Rename command added", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Works via console and client.", "created_at": "2017-03-09T07:43:33Z", "updated_at": "2017-03-10T04:54:58Z", "closed_at": "2017-03-09T13:34:36Z", "merged_at": "2017-03-09T13:34:36Z", "merge_commit_sha": "1b50e79491689978e981f30f386e999129a61fa0", "assignee": null, "milestone": null, "draft": 0, "head": "08fe3303623b35f5476ed864580ee9d12e1c3b68", "base": "0850963d9efadbccd0de6f9dd990f61c5076b854", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/116", "merged_by": null} {"id": 110086205, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMDg2MjA1", "number": 117, "state": "closed", "locked": 0, "title": "Marketplace Recall + some other changes", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-03-10T09:00:18Z", "updated_at": "2017-03-20T02:58:24Z", "closed_at": "2017-03-19T09:04:52Z", "merged_at": null, "merge_commit_sha": "517c2da1f49eb75dff151cd7af7dd41f47321ba5", "assignee": null, "milestone": null, "draft": 0, "head": "0bc7be01d3e4ee2e4d9739492d095cf981628856", "base": "1b50e79491689978e981f30f386e999129a61fa0", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/117", "merged_by": null} {"id": 110261867, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMjYxODY3", "number": 118, "state": "closed", "locked": 0, "title": "Landblocks", "user": {"value": 26334665, "label": "lurker-mcdoogle"}, "body": "there are a lot of // TODO comments all over this thing.\r\n\r\nhere's what I know works:\r\n/telepoi town1\r\n/createlifestone\r\n/telepoi town2\r\n/telepoi town1\r\n... and the lifestone is still there.\r\n\r\nLooked like Mogwai bailed yesterday so I figured I'd upload this stuff just in case you wanted it.\r\n\r\nLocal chat was started, but not done. I may or may not have broken it - I didn't test.", "created_at": "2017-03-11T14:52:38Z", "updated_at": "2017-03-13T01:57:25Z", "closed_at": "2017-03-13T01:57:25Z", "merged_at": null, "merge_commit_sha": "4859ab1f0705e56508071153f6a21ce302f796df", "assignee": null, "milestone": null, "draft": 0, "head": "80fca1b8c7f10d3411529677468c81c8b1dfcb9d", "base": "d1c9f1182daaa71e4447b17056c296a695e0eeea", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/118", "merged_by": null} {"id": 110264067, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMjY0MDY3", "number": 119, "state": "closed", "locked": 0, "title": "Level up on xp change, PropertyInt Message Types and skill credits", "user": {"value": 37453, "label": "fantoms"}, "body": "- Changed the Character.Level variable from an int to a uint.\r\n\r\n- Added leveling up on grantxp. Since we don't get XP anywhere else, this is the only way so far.\r\n\r\n- Added skill credits. You cannot spend them to add skills yet. AvailableSkillCredits.\r\n\r\n- Changed the /grantxp command to allow up too 999,999,999,999 xp.\r\n\r\n- Followed @Zegeger and created a Network Message Type for PropertyInt\r\n\r\n- Allow for Max Level locking, set from the XP chart.\r\n\r\n- Added effects on leveling up.", "created_at": "2017-03-11T16:08:42Z", "updated_at": "2017-05-23T15:53:44Z", "closed_at": "2017-03-18T13:59:42Z", "merged_at": null, "merge_commit_sha": "909d35a12d2133bc90e7337fb12219cbf607c4c8", "assignee": {"value": 11369233, "label": "LtRipley36706"}, "milestone": null, "draft": 0, "head": "86f527705a1810387ef8a78f2f2ac95c20869b0e", "base": "2e24a5831a6cd587535bf24a15624d3e5df0f08e", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/119", "merged_by": null} {"id": 110325636, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMzI1NjM2", "number": 120, "state": "closed", "locked": 0, "title": "Logoff works.", "user": {"value": 10608427, "label": "Mag-nus"}, "body": "Save character position implemented. Character position is not updated in-game yet.", "created_at": "2017-03-13T01:22:21Z", "updated_at": "2017-03-13T01:22:32Z", "closed_at": "2017-03-13T01:22:32Z", "merged_at": "2017-03-13T01:22:32Z", "merge_commit_sha": "d1c9f1182daaa71e4447b17056c296a695e0eeea", "assignee": null, "milestone": null, "draft": 0, "head": "de6ba9b67c5335bc178306cac6615e2169d3c6fe", "base": "1b50e79491689978e981f30f386e999129a61fa0", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/120", "merged_by": null} {"id": 110329140, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMzI5MTQw", "number": 121, "state": "closed", "locked": 0, "title": "Landblocks, logging, object factory prep work", "user": {"value": 26334665, "label": "lurker-mcdoogle"}, "body": "there are a lot of // TODO comments all over this thing.\r\n\r\nhere's what I know works:\r\n/telepoi town1\r\n/createlifestone\r\n/telepoi town2\r\n/telepoi town1\r\n... and the lifestone is still there.\r\n\r\nFeatures:\r\n* Landblock Management\r\n* Landblock Handoff of teleporting objects\r\n* Broadcasting of objects on a landblock based on existence\r\n* Update of objects in a landblock based on Movement\r\n* Landblock adjacency broadcasting\r\n* basic object factories\r\n* log4net - not having console output was killing me and we needed a logging framework anyway. nuget to the rescue.\r\n* moved \"in front of\" calculations to hang off the Position object for better reuse\r\n* PackedDWORD object\r\n* Delayed update of position after entering portal space seems to have helped porting stability.\r\n\r\nKnown Issues\r\n* Adjacency matrix has issues broadcasting to the correct adjacencies. Shouldn't be a big deal - I'll fix it later.\r\n* local chat is untested and possibly/likely broken.\r\n\r\nMag is showing up in the commit log because I squashed a commit with his name on it when attempting a rebase. Ended up just cherrypicking into a new branch.", "created_at": "2017-03-13T02:23:28Z", "updated_at": "2017-03-18T18:42:28Z", "closed_at": "2017-03-18T18:42:28Z", "merged_at": "2017-03-18T18:42:28Z", "merge_commit_sha": "8caf806e686c08dde2e6a9f5de5d6cb239e3ef33", "assignee": {"value": 25351661, "label": "Mogwai-TheFurry"}, "milestone": null, "draft": 0, "head": "1bd87faa1285f2602fc3094cee86ea91272b21a5", "base": "0285e2c7f7e18f34162980352d3f3ef179fe01f3", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/121", "merged_by": null} {"id": 110334257, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMzM0MjU3", "number": 122, "state": "closed", "locked": 0, "title": "Minor tweaks 031217", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-03-13T03:35:35Z", "updated_at": "2017-03-20T02:58:15Z", "closed_at": "2017-03-13T12:30:54Z", "merged_at": "2017-03-13T12:30:54Z", "merge_commit_sha": "1caae60b567a44ac648c7414fbe4abd27575ecf7", "assignee": null, "milestone": null, "draft": 0, "head": "93728b4772b6627f50fb142e7f869b0a102d0c56", "base": "a9f6354abd9203a05e63b1c9a14039de182e1569", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/122", "merged_by": null} {"id": 110335114, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMzM1MTE0", "number": 123, "state": "closed", "locked": 0, "title": "GameActionType renamed from GameActionOpcode", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "", "created_at": "2017-03-13T03:47:58Z", "updated_at": "2017-03-20T02:57:59Z", "closed_at": "2017-03-13T12:24:25Z", "merged_at": "2017-03-13T12:24:25Z", "merge_commit_sha": "c753a08ac0903b3aaeab47c0d97b4aee1d607deb", "assignee": null, "milestone": null, "draft": 0, "head": "e064b6cd4f186151abf1c99148be8b5838e346de", "base": "d1c9f1182daaa71e4447b17056c296a695e0eeea", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/123", "merged_by": null} {"id": 110335370, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMzM1Mzcw", "number": 124, "state": "closed", "locked": 0, "title": "Bring Config.json.example into spec. ", "user": {"value": 11369233, "label": "LtRipley36706"}, "body": "Should fix powershell script problem because our config.json was not in spec due to my comments.", "created_at": "2017-03-13T03:51:36Z", "updated_at": "2017-03-20T02:57:55Z", "closed_at": "2017-03-13T12:26:40Z", "merged_at": "2017-03-13T12:26:40Z", "merge_commit_sha": "a9f6354abd9203a05e63b1c9a14039de182e1569", "assignee": null, "milestone": null, "draft": 0, "head": "d3f84c23d7b5142b6f0096712521b79312cc7f6b", "base": "d1c9f1182daaa71e4447b17056c296a695e0eeea", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/124", "merged_by": null} {"id": 110344221, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwMzQ0MjIx", "number": 125, "state": "closed", "locked": 0, "title": "Save Player Properties to db", "user": {"value": 37453, "label": "fantoms"}, "body": "-Saves every 60 \"ticks\". Please advise on the best stats saving interval.\r\n\r\n-Implemented database update functions for character properties.\r\n\r\n-Added a character save ticker. Please advise on the proper location for this, I did this quickly.\r\n", "created_at": "2017-03-13T06:02:12Z", "updated_at": "2017-05-23T15:53:47Z", "closed_at": "2017-03-18T14:00:13Z", "merged_at": null, "merge_commit_sha": "1780ababf28b229a79b6701ce83c95a8fd06b659", "assignee": {"value": 11369233, "label": "LtRipley36706"}, "milestone": null, "draft": 0, "head": "3806e1567851a6d3528df948c4b9319be1827da9", "base": "faeeb6e919c8f418cd74f89a415d3280309aca0a", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/125", "merged_by": null} {"id": 110482391, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwNDgyMzkx", "number": 126, "state": "closed", "locked": 0, "title": "improved dat file content exporting", "user": {"value": 26334665, "label": "lurker-mcdoogle"}, "body": "* improved cell.dat and portal.dat exporting\r\n* created admin server commands for exporting\r\n* unit tests that can be uncommented and run for exporting", "created_at": "2017-03-13T19:42:02Z", "updated_at": "2017-03-14T18:32:43Z", "closed_at": "2017-03-14T18:32:43Z", "merged_at": null, "merge_commit_sha": "89a718f579721cde34350c938948b850472e2c63", "assignee": null, "milestone": null, "draft": 0, "head": "d7447cd565f7e767c52ef77b7ff6faf0918359d0", "base": "1caae60b567a44ac648c7414fbe4abd27575ecf7", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/126", "merged_by": null} {"id": 110689312, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwNjg5MzEy", "number": 127, "state": "closed", "locked": 0, "title": "Dat File parsing", "user": {"value": 26334665, "label": "lurker-mcdoogle"}, "body": "* improved cell.dat and portal.dat exporting, created admin server commands for them as well as unit tests that can be uncommented.\r\n* bug fix in DatFile with the FileOffset being wrong. started detailed documentation on dat file contents.\r\n* worked on some object parsing. found a bunch more object types in the client - now categorizes ALL portal files.", "created_at": "2017-03-14T18:33:48Z", "updated_at": "2017-03-15T12:12:22Z", "closed_at": "2017-03-15T12:12:22Z", "merged_at": "2017-03-15T12:12:22Z", "merge_commit_sha": "1faa88b3b6c1b3061c56176e7b5408feefafe555", "assignee": null, "milestone": null, "draft": 0, "head": "d73ad958db18dd1bf490a8f6bfcde94c9b19ac56", "base": "1caae60b567a44ac648c7414fbe4abd27575ecf7", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/127", "merged_by": null} {"id": 110920688, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwOTIwNjg4", "number": 128, "state": "closed", "locked": 0, "title": "Implement @acehelp and @acecommands", "user": {"value": 25650194, "label": "Thwargle"}, "body": "Implemented acehelp. Will work from console or client and inform the user of general help information.\r\n\r\nImplemented acecommands which will iterate through the list of commands based on the current accessLevel and dynamically list them on both the client and the server console.", "created_at": "2017-03-15T19:10:41Z", "updated_at": "2017-03-16T13:58:20Z", "closed_at": "2017-03-16T13:58:20Z", "merged_at": null, "merge_commit_sha": null, "assignee": null, "milestone": null, "draft": 0, "head": "4edc9ea8407e17acfa2cc25aa2cf4f180bd64600", "base": "1faa88b3b6c1b3061c56176e7b5408feefafe555", "author_association": "NONE", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/128", "merged_by": null} {"id": 110971722, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwOTcxNzIy", "number": 129, "state": "closed", "locked": 0, "title": "Change ACE from clustered server to single server architecture.", "user": {"value": 10608427, "label": "Mag-nus"}, "body": "", "created_at": "2017-03-16T00:37:53Z", "updated_at": "2017-03-16T00:38:19Z", "closed_at": "2017-03-16T00:38:19Z", "merged_at": "2017-03-16T00:38:19Z", "merge_commit_sha": "4cc9e98f3eb44aa91e4510cc4b325554a54b2df3", "assignee": null, "milestone": null, "draft": 0, "head": "1b6c767da4c81587dc2a0e5ec05722fcf5db2f9a", "base": "1faa88b3b6c1b3061c56176e7b5408feefafe555", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/129", "merged_by": null} {"id": 110972740, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwOTcyNzQw", "number": 130, "state": "closed", "locked": 0, "title": "This removes Host from the config. Servers are differentiated by the \u2026", "user": {"value": 10608427, "label": "Mag-nus"}, "body": "\u2026Port.", "created_at": "2017-03-16T00:48:57Z", "updated_at": "2017-03-16T00:49:04Z", "closed_at": "2017-03-16T00:49:04Z", "merged_at": "2017-03-16T00:49:04Z", "merge_commit_sha": "2e24a5831a6cd587535bf24a15624d3e5df0f08e", "assignee": null, "milestone": null, "draft": 0, "head": "1f638f71a4f68747778e6263fe855b73714f9d38", "base": "4cc9e98f3eb44aa91e4510cc4b325554a54b2df3", "author_association": "MEMBER", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/130", "merged_by": null} {"id": 110992316, "node_id": "MDExOlB1bGxSZXF1ZXN0MTEwOTkyMzE2", "number": 131, "state": "closed", "locked": 0, "title": "Create Training Wand", "user": {"value": 25460553, "label": "ogmage78"}, "body": "Added some test code to create a training wand. As part of this work, I put in some fixes in sizes, added AnimationFrame. While this is not all that spectacular - it perfectly matches live server pcaps in every field. \r\n\r\nI would like to work on persisting this out to the database. I assume we will need to implement a next object_id sequence as part of this. In the test code it just sets an arbitrary object_id for the wand since it is not yet persisted. Any feedback on the code would be appreciated - I am way out of date, but studying hard to get caught up so I can help. Pea gave me the final piece of the puzzle - without being able to set animation frame, setting the flag caused an alignment mismatch. God this was fun. I forgot how much I used to love coding. ", "created_at": "2017-03-16T04:37:15Z", "updated_at": "2017-03-16T05:13:40Z", "closed_at": "2017-03-16T05:13:40Z", "merged_at": null, "merge_commit_sha": "8e676b214713063544540a82c27af56bd206d15d", "assignee": null, "milestone": null, "draft": 0, "head": "2f75a6bd431de765e77b8e400ea9c07b8d91ce09", "base": "2e24a5831a6cd587535bf24a15624d3e5df0f08e", "author_association": "CONTRIBUTOR", "auto_merge": null, "repo": {"value": 79078680, "label": "ACE"}, "url": "https://github.com/ACEmulator/ACE/pull/131", "merged_by": null}