Skip to content

Commit 0451795

Browse files
committed
FOSS
1 parent 588a14c commit 0451795

30 files changed

+2558
-259
lines changed

LICENSE

Lines changed: 704 additions & 0 deletions
Large diffs are not rendered by default.

LICENSE.MD

Lines changed: 0 additions & 157 deletions
This file was deleted.

readme.md

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,55 @@
11
# ChunkAPI
2-
2+
<a rel="license" href="https://www.gnu.org/licenses/agpl-3.0.en.html"><img alt="AGPLv3 logo" style="border-width:0" src="https://www.gnu.org/graphics/agplv3-with-text-162x68.png" /></a>
33
## Author: FalsePattern
4-
## License: CC-BY-NC-ND 4.0 <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-nd/4.0/88x31.png" /></a>
4+
## License: GNU AGPLv3.0 with additional permissions (see below, or in the LICENSE file)
55

66
Summary
77
-------
88

99
A mod for adding custom data to chunks without the hassle of writing custom packets, event handling, loading hooks, and more.
1010

11+
License
12+
-------
13+
14+
ChunkAPI is designed with players in mind, and as such, it uses slightly aggressive licensing to make sure that third
15+
party developers cannot break your worlds in an irrecoverable way by changing huge parts of the API.
16+
17+
For this reason, the mod itself is fully licensed under the GNU Affero General Public License, version 3.0 or later,
18+
with the following additional permissions to allow it to be easily used by modpacks and other mods:
19+
20+
<details>
21+
<summary>License excerpt</summary>
22+
23+
```
24+
According to section 7 of the GNU AGPL, this software comes with the following additional permissions:
25+
26+
You may link this mod against proprietary code developed by Mojang Studios (Minecraft and its dependencies), as well
27+
as distribute binary builds of it as part of a "Minecraft modpack" without the AGPL restrictions spreading to any other
28+
files in said modpack.
29+
30+
You may also develop any mods that depend on classes the API packages (`com.falsepattern.chunk.api.*`) and distribute that
31+
mod under terms of your own choice. Note that this permissions does not apply to anything outside the internal package,
32+
as those are internal implementations of ChunkAPI and are not meant to be used in any external mod, thus the full force
33+
of the AGPL applies in such cases.
34+
35+
These additional permissions get removed if you modify, extend, rename, remove, or in any other way alter
36+
any part of the public API code, save data binary formats, or the network protocol in such a way that makes
37+
it not perfectly compatible with the official versions of ChunkAPI.
38+
39+
If you wish to make modifications to the previously mentioned features, please create a pull request on the official
40+
release of ChunkAPI with full reasoning and specifications behind the requested change, and once it's merged and
41+
published in an official release, your modified version may once again inherit this additional permission.
42+
43+
To avoid abuse caused by upstream API changes, these permissions are valid as long as your modified version of ChunkAPI
44+
is perfectly compatible with any public release of the official ChunkAPI.
45+
```
46+
47+
</details>
48+
49+
Note that while the mentioned limitations might seem unnecessary, it is essential for protecting your saves from getting
50+
"trapped" in a random fork of ChunkAPI without any way to recover to vanilla or the official release of ChunkAPI
51+
without world corruption, in case no suitable backups are available.
52+
1153
Goals
1254
-----
1355

src/main/java/com/falsepattern/chunk/api/ArrayUtil.java

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,46 @@
11
/*
2-
* Copyright (c) 2023 FalsePattern
3-
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
4-
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/
5-
* or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
2+
* ChunkAPI
3+
*
4+
* Copyright (C) 2023-2024 FalsePattern
5+
* All Rights Reserved
6+
*
7+
* The above copyright notice and this permission notice
8+
* shall be included in all copies or substantial portions of the Software.
9+
*
10+
* This program is free software: you can redistribute it and/or modify
11+
* it under the terms of the GNU Affero General Public License as published by
12+
* the Free Software Foundation, either version 3 of the License, or
13+
* (at your option) any later version.
14+
*
15+
* This program is distributed in the hope that it will be useful,
16+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
* GNU Affero General Public License for more details.
19+
*
20+
* You should have received a copy of the GNU Affero General Public License
21+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
* -------------------------------------------------------------------------------
23+
* According to section 7 of the GNU AGPL, this software comes with the following additional permissions:
24+
*
25+
* You may link this mod against proprietary code developed by Mojang Studios (Minecraft and its dependencies), as well
26+
* as distribute binary builds of it as part of a "Minecraft modpack" without the AGPL restrictions spreading to any other
27+
* files in said modpack.
28+
*
29+
* You may also develop any mods that depend on classes the API packages (`com.falsepattern.chunk.api.*`) and distribute that
30+
* mod under terms of your own choice. Note that this permissions does not apply to anything outside the internal package,
31+
* as those are internal implementations of ChunkAPI and are not meant to be used in any external mod, thus the full force
32+
* of the AGPL applies in such cases.
33+
*
34+
* These additional permissions get removed if you modify, extend, rename, remove, or in any other way alter
35+
* any part of the public API code, save data binary formats, or the network protocol in such a way that makes
36+
* it not perfectly compatible with the official versions of ChunkAPI.
37+
*
38+
* If you wish to make modifications to the previously mentioned features, please create a pull request on the official
39+
* release of ChunkAPI with full reasoning and specifications behind the requested change, and once it's merged and
40+
* published in an official release, your modified version may once again inherit this additional permission.
41+
*
42+
* To avoid abuse caused by upstream API changes, these permissions are valid as long as your modified version of ChunkAPI
43+
* is perfectly compatible with any public release of the official ChunkAPI.
644
*/
745

846
package com.falsepattern.chunk.api;
@@ -15,6 +53,8 @@
1553
import java.util.Arrays;
1654

1755
/**
56+
* This is an API class covered by the additional permissions in the license.
57+
* <p>
1858
* Miscellaneous utilities for in-place array transfer (where possible).
1959
*/
2060
@StableAPI(since = "0.5.0")

src/main/java/com/falsepattern/chunk/api/DataManager.java

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,46 @@
11
/*
2-
* Copyright (c) 2023 FalsePattern
3-
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
4-
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/
5-
* or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
2+
* ChunkAPI
3+
*
4+
* Copyright (C) 2023-2024 FalsePattern
5+
* All Rights Reserved
6+
*
7+
* The above copyright notice and this permission notice
8+
* shall be included in all copies or substantial portions of the Software.
9+
*
10+
* This program is free software: you can redistribute it and/or modify
11+
* it under the terms of the GNU Affero General Public License as published by
12+
* the Free Software Foundation, either version 3 of the License, or
13+
* (at your option) any later version.
14+
*
15+
* This program is distributed in the hope that it will be useful,
16+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
* GNU Affero General Public License for more details.
19+
*
20+
* You should have received a copy of the GNU Affero General Public License
21+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
* -------------------------------------------------------------------------------
23+
* According to section 7 of the GNU AGPL, this software comes with the following additional permissions:
24+
*
25+
* You may link this mod against proprietary code developed by Mojang Studios (Minecraft and its dependencies), as well
26+
* as distribute binary builds of it as part of a "Minecraft modpack" without the AGPL restrictions spreading to any other
27+
* files in said modpack.
28+
*
29+
* You may also develop any mods that depend on classes the API packages (`com.falsepattern.chunk.api.*`) and distribute that
30+
* mod under terms of your own choice. Note that this permissions does not apply to anything outside the internal package,
31+
* as those are internal implementations of ChunkAPI and are not meant to be used in any external mod, thus the full force
32+
* of the AGPL applies in such cases.
33+
*
34+
* These additional permissions get removed if you modify, extend, rename, remove, or in any other way alter
35+
* any part of the public API code, save data binary formats, or the network protocol in such a way that makes
36+
* it not perfectly compatible with the official versions of ChunkAPI.
37+
*
38+
* If you wish to make modifications to the previously mentioned features, please create a pull request on the official
39+
* release of ChunkAPI with full reasoning and specifications behind the requested change, and once it's merged and
40+
* published in an official release, your modified version may once again inherit this additional permission.
41+
*
42+
* To avoid abuse caused by upstream API changes, these permissions are valid as long as your modified version of ChunkAPI
43+
* is perfectly compatible with any public release of the official ChunkAPI.
644
*/
745

846
package com.falsepattern.chunk.api;
@@ -19,6 +57,8 @@
1957
import java.nio.ByteBuffer;
2058

2159
/**
60+
* This is an API class covered by the additional permissions in the license.
61+
* <p>
2262
* Singleton instances that can manage custom in chunks. This class only manages the registration of
2363
* managers. For the actual networking and data storage, see the internal interfaces of this interface.
2464
* Note: This interface does nothing by itself, you also need to implement one or more of the internal interfaces.

src/main/java/com/falsepattern/chunk/api/DataRegistry.java

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,46 @@
11
/*
2-
* Copyright (c) 2023 FalsePattern
3-
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
4-
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/
5-
* or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
2+
* ChunkAPI
3+
*
4+
* Copyright (C) 2023-2024 FalsePattern
5+
* All Rights Reserved
6+
*
7+
* The above copyright notice and this permission notice
8+
* shall be included in all copies or substantial portions of the Software.
9+
*
10+
* This program is free software: you can redistribute it and/or modify
11+
* it under the terms of the GNU Affero General Public License as published by
12+
* the Free Software Foundation, either version 3 of the License, or
13+
* (at your option) any later version.
14+
*
15+
* This program is distributed in the hope that it will be useful,
16+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
* GNU Affero General Public License for more details.
19+
*
20+
* You should have received a copy of the GNU Affero General Public License
21+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
* -------------------------------------------------------------------------------
23+
* According to section 7 of the GNU AGPL, this software comes with the following additional permissions:
24+
*
25+
* You may link this mod against proprietary code developed by Mojang Studios (Minecraft and its dependencies), as well
26+
* as distribute binary builds of it as part of a "Minecraft modpack" without the AGPL restrictions spreading to any other
27+
* files in said modpack.
28+
*
29+
* You may also develop any mods that depend on classes the API packages (`com.falsepattern.chunk.api.*`) and distribute that
30+
* mod under terms of your own choice. Note that this permissions does not apply to anything outside the internal package,
31+
* as those are internal implementations of ChunkAPI and are not meant to be used in any external mod, thus the full force
32+
* of the AGPL applies in such cases.
33+
*
34+
* These additional permissions get removed if you modify, extend, rename, remove, or in any other way alter
35+
* any part of the public API code, save data binary formats, or the network protocol in such a way that makes
36+
* it not perfectly compatible with the official versions of ChunkAPI.
37+
*
38+
* If you wish to make modifications to the previously mentioned features, please create a pull request on the official
39+
* release of ChunkAPI with full reasoning and specifications behind the requested change, and once it's merged and
40+
* published in an official release, your modified version may once again inherit this additional permission.
41+
*
42+
* To avoid abuse caused by upstream API changes, these permissions are valid as long as your modified version of ChunkAPI
43+
* is perfectly compatible with any public release of the official ChunkAPI.
644
*/
745

846
package com.falsepattern.chunk.api;
@@ -18,6 +56,8 @@
1856
import java.util.Set;
1957

2058
/**
59+
* This is an API class covered by the additional permissions in the license.
60+
* <p>
2161
* This class is used to register ChunkDataManagers, as well as dispatch clone requests.
2262
*
2363
* @since 0.5.0

src/main/java/com/falsepattern/chunk/api/package-info.java

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,51 @@
11
/*
2-
* Copyright (c) 2023 FalsePattern
3-
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
4-
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/
5-
* or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
2+
* ChunkAPI
3+
*
4+
* Copyright (C) 2023-2024 FalsePattern
5+
* All Rights Reserved
6+
*
7+
* The above copyright notice and this permission notice
8+
* shall be included in all copies or substantial portions of the Software.
9+
*
10+
* This program is free software: you can redistribute it and/or modify
11+
* it under the terms of the GNU Affero General Public License as published by
12+
* the Free Software Foundation, either version 3 of the License, or
13+
* (at your option) any later version.
14+
*
15+
* This program is distributed in the hope that it will be useful,
16+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
* GNU Affero General Public License for more details.
19+
*
20+
* You should have received a copy of the GNU Affero General Public License
21+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
* -------------------------------------------------------------------------------
23+
* According to section 7 of the GNU AGPL, this software comes with the following additional permissions:
24+
*
25+
* You may link this mod against proprietary code developed by Mojang Studios (Minecraft and its dependencies), as well
26+
* as distribute binary builds of it as part of a "Minecraft modpack" without the AGPL restrictions spreading to any other
27+
* files in said modpack.
28+
*
29+
* You may also develop any mods that depend on classes the API packages (`com.falsepattern.chunk.api.*`) and distribute that
30+
* mod under terms of your own choice. Note that this permissions does not apply to anything outside the internal package,
31+
* as those are internal implementations of ChunkAPI and are not meant to be used in any external mod, thus the full force
32+
* of the AGPL applies in such cases.
33+
*
34+
* These additional permissions get removed if you modify, extend, rename, remove, or in any other way alter
35+
* any part of the public API code, save data binary formats, or the network protocol in such a way that makes
36+
* it not perfectly compatible with the official versions of ChunkAPI.
37+
*
38+
* If you wish to make modifications to the previously mentioned features, please create a pull request on the official
39+
* release of ChunkAPI with full reasoning and specifications behind the requested change, and once it's merged and
40+
* published in an official release, your modified version may once again inherit this additional permission.
41+
*
42+
* To avoid abuse caused by upstream API changes, these permissions are valid as long as your modified version of ChunkAPI
43+
* is perfectly compatible with any public release of the official ChunkAPI.
644
*/
745

846
/**
47+
* This is an API package covered by the additional permissions in the license.
48+
* <p>
949
* This package contains the classes that you will use to interact with the ChunkAPI library.
1050
*
1151
* @since 0.5.0

src/main/java/com/falsepattern/chunk/internal/ChunkAPI.java

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,46 @@
11
/*
2-
* Copyright (c) 2023 FalsePattern
3-
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
4-
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/
5-
* or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
2+
* ChunkAPI
3+
*
4+
* Copyright (C) 2023-2024 FalsePattern
5+
* All Rights Reserved
6+
*
7+
* The above copyright notice and this permission notice
8+
* shall be included in all copies or substantial portions of the Software.
9+
*
10+
* This program is free software: you can redistribute it and/or modify
11+
* it under the terms of the GNU Affero General Public License as published by
12+
* the Free Software Foundation, either version 3 of the License, or
13+
* (at your option) any later version.
14+
*
15+
* This program is distributed in the hope that it will be useful,
16+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
* GNU Affero General Public License for more details.
19+
*
20+
* You should have received a copy of the GNU Affero General Public License
21+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
* -------------------------------------------------------------------------------
23+
* According to section 7 of the GNU AGPL, this software comes with the following additional permissions:
24+
*
25+
* You may link this mod against proprietary code developed by Mojang Studios (Minecraft and its dependencies), as well
26+
* as distribute binary builds of it as part of a "Minecraft modpack" without the AGPL restrictions spreading to any other
27+
* files in said modpack.
28+
*
29+
* You may also develop any mods that depend on classes the API packages (`com.falsepattern.chunk.api.*`) and distribute that
30+
* mod under terms of your own choice. Note that this permissions does not apply to anything outside the internal package,
31+
* as those are internal implementations of ChunkAPI and are not meant to be used in any external mod, thus the full force
32+
* of the AGPL applies in such cases.
33+
*
34+
* These additional permissions get removed if you modify, extend, rename, remove, or in any other way alter
35+
* any part of the public API code, save data binary formats, or the network protocol in such a way that makes
36+
* it not perfectly compatible with the official versions of ChunkAPI.
37+
*
38+
* If you wish to make modifications to the previously mentioned features, please create a pull request on the official
39+
* release of ChunkAPI with full reasoning and specifications behind the requested change, and once it's merged and
40+
* published in an official release, your modified version may once again inherit this additional permission.
41+
*
42+
* To avoid abuse caused by upstream API changes, these permissions are valid as long as your modified version of ChunkAPI
43+
* is perfectly compatible with any public release of the official ChunkAPI.
644
*/
745

846
package com.falsepattern.chunk.internal;

0 commit comments

Comments
 (0)