{"action":"created","issue":{"url":"https://api.github.com/repos/PaperMC/Paper/issues/1453","repository_url":"https://api.github.com/repos/PaperMC/Paper","labels_url":"https://api.github.com/repos/PaperMC/Paper/issues/1453/labels{/name}","comments_url":"https://api.github.com/repos/PaperMC/Paper/issues/1453/comments","events_url":"https://api.github.com/repos/PaperMC/Paper/issues/1453/events","html_url":"https://github.com/PaperMC/Paper/issues/1453","id":361369605,"node_id":"MDU6SXNzdWUzNjEzNjk2MDU=","number":1453,"title":"Make PaperWorldMap extends ConcurrentHashMap","user":{"login":"molor","id":19989717,"node_id":"MDQ6VXNlcjE5OTg5NzE3","avatar_url":"https://avatars0.githubusercontent.com/u/19989717?v=4","gravatar_id":"","url":"https://api.github.com/users/molor","html_url":"https://github.com/molor","followers_url":"https://api.github.com/users/molor/followers","following_url":"https://api.github.com/users/molor/following{/other_user}","gists_url":"https://api.github.com/users/molor/gists{/gist_id}","starred_url":"https://api.github.com/users/molor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/molor/subscriptions","organizations_url":"https://api.github.com/users/molor/orgs","repos_url":"https://api.github.com/users/molor/repos","events_url":"https://api.github.com/users/molor/events{/privacy}","received_events_url":"https://api.github.com/users/molor/received_events","type":"User","site_admin":false},"labels":[{"id":314954737,"node_id":"MDU6TGFiZWwzMTQ5NTQ3Mzc=","url":"https://api.github.com/repos/PaperMC/Paper/labels/invalid","name":"invalid","color":"e6e6e6","default":true},{"id":372995892,"node_id":"MDU6TGFiZWwzNzI5OTU4OTI=","url":"https://api.github.com/repos/PaperMC/Paper/labels/plugin","name":"plugin","color":"473e60","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-09-18T15:46:29Z","updated_at":"2018-09-18T15:57:50Z","closed_at":null,"author_association":"NONE","body":"**Is your feature request related to a problem? Please describe.**\r\nIn one of my plugins, I adding a custom world immediately after the WorldLoadEvent (only if the overworld has been loaded). In this case, I get a ConcurrentModificationException when performing this operation. To avoid this, in plugin onEnable(), I replace worlds HashMap with ConcurrentHashMap, and everything starts working fine. However, you have recently made changes, and Paper now uses an improved version instead of the usual HashMap, i. e. PaperWorldMap. I don't want your work to be done in vain in my case and PaperWorldMap to be replaced by ConcurrentHashMap (because you do really good things).\r\n\r\n**Describe the solution you'd like**\r\nI would be grateful if PaperWorldMap extends ConcurrentHashMap - in that case, I would not perform a replacement, and my plugin would work even better.\r\n\r\n**Additional context**\r\nAnswering the question why I adding custom world in WorldLoadEvent: because I need any plugin to have access to it at the time of its enable, as well as to the native worlds.\r\n"},"comment":{"url":"https://api.github.com/repos/PaperMC/Paper/issues/comments/422450493","html_url":"https://github.com/PaperMC/Paper/issues/1453#issuecomment-422450493","issue_url":"https://api.github.com/repos/PaperMC/Paper/issues/1453","id":422450493,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMjQ1MDQ5Mw==","user":{"login":"molor","id":19989717,"node_id":"MDQ6VXNlcjE5OTg5NzE3","avatar_url":"https://avatars0.githubusercontent.com/u/19989717?v=4","gravatar_id":"","url":"https://api.github.com/users/molor","html_url":"https://github.com/molor","followers_url":"https://api.github.com/users/molor/followers","following_url":"https://api.github.com/users/molor/following{/other_user}","gists_url":"https://api.github.com/users/molor/gists{/gist_id}","starred_url":"https://api.github.com/users/molor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/molor/subscriptions","organizations_url":"https://api.github.com/users/molor/orgs","repos_url":"https://api.github.com/users/molor/repos","events_url":"https://api.github.com/users/molor/events{/privacy}","received_events_url":"https://api.github.com/users/molor/received_events","type":"User","site_admin":false},"created_at":"2018-09-18T15:57:50Z","updated_at":"2018-09-18T15:57:50Z","author_association":"NONE","body":"Maybe there is some other way to add world using Bukkit.createWorld() to have it added BEFORE all plugins are enabled, but I don't know about it and would also be grateful if you could tell me.\r\n\r\n> Delay your world addition by 1 tick, and that will solve it.\r\n\r\nNo, scheduler starts after all plugins have been enabled. I need the opposite."}}
{"actor":{"display_login":"molor"}}