Dylan K. Taylor 0e538ee51d
Enchantment: Split up enchantment type data and enchantment instance data (#1825)
* Enchantment: Split enchantment type data from instance data
This commit splits enchantments into (effectively) enchantment TYPES vs enchantment INSTANCES.

When applying an enchantment to an item, it only needs to know 2 things:
1. the enchantment ID (identifier) which is used to identify the TYPE
2. the enchantment LEVEL which is used to modify the enchantment's power IN THIS INSTANCE.

Therefore, the LEVEL is not an immutable property. However, all other properties of the currently-named "Enchantment" class are immutable type properties.
Currently, when applying an enchantment to an item, a copy of the enchantment object is created from the registry, and returned. This copies all of the properties contained by the type, which is obviously sub optimal.
2017-12-21 12:40:33 +00:00
2017-06-25 14:15:34 +01:00
2017-11-16 16:37:30 +00:00
2017-09-19 20:49:41 +01:00
2012-12-07 02:24:55 +01:00
2016-12-04 14:16:15 +00:00
2017-12-11 19:40:02 +00:00

PocketMine-MP

A highly customisable, open source server software for Minecraft: Pocket Edition written in PHP

Build Status

Setup, help & support, FAQs

Head over to the documentation site. If you don't find what you're looking for there, talk to a human. Please do not use our issue tracker for support requests.

Discussion

Plugins

There are a very wide range of already-written plugins available which you can use to customise your server. Check out Poggit, or just search GitHub.

For developers

Can I contribute?

Yes you can! Contributions are welcomed provided that they comply with our Contributing Guidelines. Please ensure you read the relevant sections of the guidelines carefully before making a Pull Request or opening an Issue.

Where can I get the latest .phar?

Head over to our official Jenkins server

Third-party Libraries/Protocols Used

Licensing information

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

pmmp/PocketMine are not affiliated with Mojang. All brands and trademarks belong to their respective owners. PocketMine-MP is not a Mojang-approved software, nor is it associated with Mojang.

Languages
PHP 99.9%