mirror of
https://github.com/BX-Team/DivineMC.git
synced 2025-12-19 14:59:25 +00:00
[ci-skip] New patches and optimisations (#11)
I'll make some changes now, so skipping build Changelog: * add CarpetFixes optimizations * fix optimizations config * lithium optimizations * add Carpet Fixes Sheep Optimization * add Async Pathfinding; add C2ME opts math * add 2 vmp patches * New performance patches; update README and wiki README * update configuration on wiki * update wiki main page * Updated Upstream (Purpur) * fix conflicts * make "Don't save Fireworks" patch configurable * Disable memory reserve allocating * Fix MC-172801 * resolve conflicts * add bstats to readme * dd custom list of forks * update logo link
This commit is contained in:
29
README.md
29
README.md
@@ -1,4 +1,4 @@
|
|||||||
<img src="https://api.bxteam.gq/v3/resources/divinemc-logo.png" height="240" alt="DivineMC Face" align="right">
|
<img src="https://github.com/DivineMC/DivineMC/assets/76615486/12e5dfef-b2cb-4fe6-8587-342f0d116d23" height="240" alt="DivineMC Face" align="right">
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<h1>DivineMC</h1>
|
<h1>DivineMC</h1>
|
||||||
@@ -10,29 +10,36 @@
|
|||||||
[](https://github.com/DivineMC/DivineMC/releases/latest)
|
[](https://github.com/DivineMC/DivineMC/releases/latest)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## Features
|
## ⚙️ Features
|
||||||
|
|
||||||
- **DivineMC is a fork of [Purpur](https://github.com/PurpurMC/Purpur)** designed for configurability, new fun and exciting gameplay features.
|
- **Based on [Purpur](https://github.com/PurpurMC/Purpur)** - Purpur is a fork of Paper with new fun and exciting gameplay features, and performance boost.
|
||||||
- **Contains [Lithium](https://github.com/CaffeineMC/lithium-fabric) patches** that optimizing many areas in game.
|
- **Popular mods implemented** - Patches from mods such as Lithium, VMP, C2ME and others.
|
||||||
- **Implements** Linear region support.
|
- **Async Pathfinding** - Makes pathfinding-related work happen asynchronously (by [Petal](https://github.com/Bloom-host/Petal)).
|
||||||
- **Bug fixes** for several Minecraft issues.
|
- **[Linear region format](https://github.com/xymb-endcrystalme/LinearRegionFileFormatTools)** - Linear region format saves about 50% of disk space in Overworld and Nether and 95% in The End.
|
||||||
- **Plugin compatibility** with Spigot & Paper plugins.
|
- **Configurable chat reports** - Disallow players from reporting others messages to Mojang.
|
||||||
|
- **Optimized Default Configuration** - The default configuration files is optimized.
|
||||||
|
- **Bug fixes** - Fixed Minecraft bugs that reported on Mojira.
|
||||||
|
- ... and more!
|
||||||
|
|
||||||
## Downloads
|
## ⬇️ Downloads
|
||||||
|
|
||||||
In normal case, you can download the latest JAR file from releases tab [here](https://github.com/DivineMC/DivineMC/releases/latest)
|
In normal case, you can download the latest JAR file from releases tab [here](https://github.com/DivineMC/DivineMC/releases/latest)
|
||||||
|
|
||||||
**Please note:** Java >= 17 is required.
|
**Please note:** Java >= 17 is required.
|
||||||
|
|
||||||
## Building
|
## 📦 Building
|
||||||
In order to distribute and use this server software, you need a paperclip file:
|
In order to distribute and use this server software, you need a paperclip file:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./gradlew applyPatches && ./gradlew createReobfPaperclipJar
|
./gradlew applyPatches && ./gradlew createReobfPaperclipJar
|
||||||
```
|
```
|
||||||
|
|
||||||
## License
|
## ⚖️ License
|
||||||
Patches are licensed under GPL-3.0.
|
Patches are licensed under GPL-3.0.
|
||||||
All other files are licensed under MIT.
|
All other files are licensed under MIT.
|
||||||
|
|
||||||
###### And we don't steal logo from YatopiaMC! [List of all forks](https://gist.github.com/SoSeDiK/1773ef2c239722f7083a25b2f78619ed)
|
## 📈 bStats
|
||||||
|
|
||||||
|
[](https://bstats.org/plugin/server-implementation/DivineMC)
|
||||||
|
|
||||||
|
###### We don't steal logo from YatopiaMC! [List of all forks](https://gist.github.com/NONPLAYT/48742353af8ae36bcef5d1c36de9730a)
|
||||||
|
|||||||
@@ -36,21 +36,41 @@ Global settings affect all worlds on the server as well as the core server funct
|
|||||||
- **description**: Sets whether the server should dump all configuration values to the server log on startup (this maybe not working)
|
- **description**: Sets whether the server should dump all configuration values to the server log on startup (this maybe not working)
|
||||||
|
|
||||||
### settings
|
### settings
|
||||||
- #### do-not-process-chat-commands
|
- #### disable-chat-reports
|
||||||
- **default**: true
|
- **default**: false
|
||||||
- **description**: Commands will not be proceeded while the player is joining the server
|
- **description**: Disables chat signing, which was introduced in version 1.19.1 (similar to No Chat Reports mod)
|
||||||
- #### disable-chat-reports
|
- #### async-pathfinding
|
||||||
- **default**: false
|
- ##### enable
|
||||||
- **description**: Disables chat signing, which was introduced in version 1.19.1 (similar to No Chat Reports mod)
|
- **default**: true
|
||||||
|
- **description**: Enables or disables async pathfinding feature
|
||||||
### region-format
|
- ##### max-threads
|
||||||
- #### linear
|
- **default**: 0
|
||||||
- ##### flush-frequency
|
- **description**: Specifies how many threads to use for async pathfinding. If you specify 0, then the maximum amount will be calculated by itself using the formula: `availableProcessors / 4`
|
||||||
- **default**: 10
|
- ##### keepalive
|
||||||
- **description**: Time in seconds after which chunks will be flushed
|
- **default**: 60
|
||||||
- ##### flush-max-threads
|
- **description**: The time during which inactive threads will remain in the pool until they are completed after downtime, specified in seconds.
|
||||||
- **default**: 1
|
- #### region-format
|
||||||
- **description**: Maximum number of threads for flushing chunks
|
##### linear
|
||||||
|
- ###### flush-frequency
|
||||||
|
- **default**: 10
|
||||||
|
- **description**: Time in seconds after which chunks will be flushed
|
||||||
|
- ###### flush-max-threads
|
||||||
|
- **default**: 1
|
||||||
|
- **description**: Maximum number of threads for flushing chunks
|
||||||
|
- #### do-not-process-chat-commands
|
||||||
|
- **default**: true
|
||||||
|
- **description**: Commands will not be proceeded while the player is joining the server
|
||||||
|
- #### optimizations
|
||||||
|
- ##### recipe-manager-optimization
|
||||||
|
- **default**: true
|
||||||
|
- **description**: Enables or disables optimization of recipe manager from the CarpetFixes mod. Optimized by taking out streams & doing extra early checks to quickly remove unrelated recipes
|
||||||
|
- ##### biome-manager-optimization
|
||||||
|
- **default**: true
|
||||||
|
- **description**: Enables or disables optimization of biomes from the CarpetFixes mod. Makes getBiome() method faster by 25% - 75%
|
||||||
|
- ##### sheep-optimization
|
||||||
|
- **default**: true
|
||||||
|
- **description**: Enables or disables optimization of sheep color choosing from the CarpetFixes mod. The game determines the child sheep's color by getting a wool block from the parents, putting them in a crafting
|
||||||
|
recipe, getting the output wool and getting the color from that.
|
||||||
|
|
||||||
## world-settings
|
## world-settings
|
||||||
|
|
||||||
@@ -58,18 +78,6 @@ World settings are on a per-world basis. The child-node `default` is used for al
|
|||||||
|
|
||||||
For a more clear explanation of the world settings section of the config, feel free to read through Paper's explanation here: https://docs.papermc.io/paper/per-world-configuration
|
For a more clear explanation of the world settings section of the config, feel free to read through Paper's explanation here: https://docs.papermc.io/paper/per-world-configuration
|
||||||
|
|
||||||
### region-format
|
|
||||||
- #### format
|
|
||||||
- **default**: ANVIL
|
|
||||||
- **description**: 2 types available: [ANVIL](https://minecraft.wiki/w/Anvil_file_format) and [LINEAR](https://github.com/xymb-endcrystalme/LinearRegionFileFormatTools?tab=readme-ov-file#linear-region-file-format-for-minecraft)
|
|
||||||
- #### linear
|
|
||||||
- ##### compression-level
|
|
||||||
- **default**: 1
|
|
||||||
- **description**: Compression ratio of the region files
|
|
||||||
- ##### crash-on-broken-symlink
|
|
||||||
- **default**: true
|
|
||||||
- **description**: Server crashes if the symlink is broken/damaged
|
|
||||||
|
|
||||||
### gameplay-mechanics
|
### gameplay-mechanics
|
||||||
- #### boat
|
- #### boat
|
||||||
- ##### dont-eject-players-from-boat-underwater
|
- ##### dont-eject-players-from-boat-underwater
|
||||||
@@ -84,3 +92,19 @@ For a more clear explanation of the world settings section of the config, feel f
|
|||||||
- ##### despawn-bullets-on-player-death
|
- ##### despawn-bullets-on-player-death
|
||||||
- **default**: true
|
- **default**: true
|
||||||
- **description**: If player is dead from shulker - bullets disappering for optimization
|
- **description**: If player is dead from shulker - bullets disappering for optimization
|
||||||
|
|
||||||
|
- #### suppress-errors-from-dirty-attributes
|
||||||
|
- **default**: true
|
||||||
|
- **description**:
|
||||||
|
|
||||||
|
- #### region-format
|
||||||
|
- ##### format
|
||||||
|
- **default**: ANVIL
|
||||||
|
- **description**: 2 types available: [ANVIL](https://minecraft.wiki/w/Anvil_file_format) and [LINEAR](https://github.com/xymb-endcrystalme/LinearRegionFileFormatTools?tab=readme-ov-file#linear-region-file-format-for-minecraft)
|
||||||
|
- ##### linear
|
||||||
|
- ###### compression-level
|
||||||
|
- **default**: 1
|
||||||
|
- **description**: Compression ratio of the region files
|
||||||
|
- ###### crash-on-broken-symlink
|
||||||
|
- **default**: true
|
||||||
|
- **description**: Server crashes if the symlink is broken/damaged
|
||||||
|
|||||||
@@ -7,29 +7,36 @@ aside: false
|
|||||||
|
|
||||||
DivineMC is the fork of Purpur compatible with Spigot plugins, offering the best performance for your server.
|
DivineMC is the fork of Purpur compatible with Spigot plugins, offering the best performance for your server.
|
||||||
|
|
||||||
## Features
|
## ⚙️ Features
|
||||||
|
|
||||||
- **DivineMC is a fork of [Purpur](https://github.com/PurpurMC/Purpur)** designed for configurability, new fun and exciting gameplay features.
|
- **Based on [Purpur](https://github.com/PurpurMC/Purpur)** - Purpur is a fork of Paper with new fun and exciting gameplay features, and performance boost.
|
||||||
- **Contains [Lithium](https://github.com/CaffeineMC/lithium-fabric) patches** that optimizing many areas in game.
|
- **Popular mods implemented** - Patches from mods such as Lithium, VMP, C2ME and others.
|
||||||
- **Implements** Linear region support.
|
- **Async Pathfinding** - Makes pathfinding-related work happen asynchronously (by [Petal](https://github.com/Bloom-host/Petal)).
|
||||||
- **Bug fixes** for several Minecraft issues.
|
- **[Linear region format](https://github.com/xymb-endcrystalme/LinearRegionFileFormatTools)** - Linear region format saves about 50% of disk space in Overworld and Nether and 95% in The End.
|
||||||
- **Plugin compatibility** with Spigot & Paper plugins.
|
- **Configurable chat reports** - Disallow players from reporting others messages to Mojang.
|
||||||
|
- **Optimized Default Configuration** - The default configuration files is optimized.
|
||||||
|
- **Bug fixes** - Fixed Minecraft bugs that reported on Mojira.
|
||||||
|
- ... and more!
|
||||||
|
|
||||||
## Downloads
|
## ⬇️ Downloads
|
||||||
|
|
||||||
In normal case, you can download the latest JAR file from releases tab [here](https://github.com/DivineMC/DivineMC/releases/latest)
|
In normal case, you can download the latest JAR file from releases tab [here](https://github.com/DivineMC/DivineMC/releases/latest)
|
||||||
|
|
||||||
**Please note:** Java >= 17 is required.
|
**Please note:** Java >= 17 is required.
|
||||||
|
|
||||||
## Building
|
## 📦 Building
|
||||||
In order to distribute and use this server software, you need a paperclip file:
|
In order to distribute and use this server software, you need a paperclip file:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./gradlew applyPatches && ./gradlew createReobfPaperclipJar
|
./gradlew applyPatches && ./gradlew createReobfPaperclipJar
|
||||||
```
|
```
|
||||||
|
|
||||||
## License
|
## ⚖️ License
|
||||||
Patches are licensed under GPL-3.0.
|
Patches are licensed under GPL-3.0.
|
||||||
All other files are licensed under MIT.
|
All other files are licensed under MIT.
|
||||||
|
|
||||||
###### [List of all forks](https://gist.github.com/SoSeDiK/1773ef2c239722f7083a25b2f78619ed)
|
## 📈 bStats
|
||||||
|
|
||||||
|
**TODO**
|
||||||
|
|
||||||
|
###### [List of all forks](https://gist.github.com/SoSeDiK/1773ef2c239722f7083a25b2f78619ed)
|
||||||
|
|||||||
@@ -17,23 +17,29 @@ hero:
|
|||||||
|
|
||||||
features:
|
features:
|
||||||
- icon: 🍴
|
- icon: 🍴
|
||||||
title: Fork of Purpur
|
title: Based on Purpur
|
||||||
details: DivineMC is the fork of Purpur compatible with Spigot plugins, offering the best performance for your server.
|
details: Purpur is a fork of Paper with new fun and exciting gameplay features, and performance boost.
|
||||||
- icon: 📰
|
- icon: 📰
|
||||||
title: Lithium patches
|
title: Popular mods implemented
|
||||||
details: DivineMC contains Lithium patches that optimizing many areas in game.
|
details: Patches from mods such as Lithium, VMP, C2ME and others.
|
||||||
|
- icon: 🐾
|
||||||
|
title: Async Pathfinding
|
||||||
|
details: Makes pathfinding-related work happen asynchronously.
|
||||||
- icon: 🏠
|
- icon: 🏠
|
||||||
title: Linear region support
|
title: Linear region format
|
||||||
details: DivineMC implements Linear region support that 50% smaller than Anvil.
|
details: Linear region format saves about 50% of disk space in Overworld and Nether and 95% in The End.
|
||||||
|
- icon: 💬
|
||||||
|
title: Configurable chat reports
|
||||||
|
details: Disallow players from reporting others messages to Mojang.
|
||||||
|
- icon: 😌
|
||||||
|
title: Optimized Default Configuration
|
||||||
|
details: The default configuration files is optimized.
|
||||||
- icon: 🐛
|
- icon: 🐛
|
||||||
title: Bug fixes
|
title: Bug fixes
|
||||||
details: DivineMC have patches that fixes bugs for several Minecraft issues.
|
details: Fixed Minecraft bugs that reported on Mojira.
|
||||||
- icon: 🔌
|
|
||||||
title: Plugin compatibility
|
|
||||||
details: DivineMC have full compatibility with Spigot & Paper plugins.
|
|
||||||
- icon: 🔃
|
- icon: 🔃
|
||||||
title: Always up-to date
|
title: Always up-to date
|
||||||
details: DivineMC always updated to latest version of Purpur
|
details: DivineMC checks for updates from Purpur every day.
|
||||||
---
|
---
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
536
package-lock.json
generated
536
package-lock.json
generated
@@ -5,7 +5,7 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vitepress": "^1.0.0-rc.7"
|
"vitepress": "1.0.0-rc.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@algolia/autocomplete-core": {
|
"node_modules/@algolia/autocomplete-core": {
|
||||||
@@ -183,9 +183,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/parser": {
|
"node_modules/@babel/parser": {
|
||||||
"version": "7.22.11",
|
"version": "7.23.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.11.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz",
|
||||||
"integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==",
|
"integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"parser": "bin/babel-parser.js"
|
"parser": "bin/babel-parser.js"
|
||||||
@@ -601,148 +601,135 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/web-bluetooth": {
|
"node_modules/@types/web-bluetooth": {
|
||||||
"version": "0.0.17",
|
"version": "0.0.20",
|
||||||
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz",
|
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
|
||||||
"integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==",
|
"integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-core": {
|
"node_modules/@vue/compiler-core": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.14.tgz",
|
||||||
"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
|
"integrity": "sha512-ro4Zzl/MPdWs7XwxT7omHRxAjMbDFRZEEjD+2m3NBf8YzAe3HuoSEZosXQo+m1GQ1G3LQ1LdmNh1RKTYe+ssEg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/parser": "^7.21.3",
|
"@babel/parser": "^7.23.6",
|
||||||
"@vue/shared": "3.3.4",
|
"@vue/shared": "3.4.14",
|
||||||
|
"entities": "^4.5.0",
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-dom": {
|
"node_modules/@vue/compiler-dom": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.14.tgz",
|
||||||
"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
|
"integrity": "sha512-nOZTY+veWNa0DKAceNWxorAbWm0INHdQq7cejFaWM1WYnoNSJbSEKYtE7Ir6lR/+mo9fttZpPVI9ZFGJ1juUEQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-core": "3.3.4",
|
"@vue/compiler-core": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-sfc": {
|
"node_modules/@vue/compiler-sfc": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.14.tgz",
|
||||||
"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
|
"integrity": "sha512-1vHc9Kv1jV+YBZC/RJxQJ9JCxildTI+qrhtDh6tPkR1O8S+olBUekimY0km0ZNn8nG1wjtFAe9XHij+YLR8cRQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/parser": "^7.20.15",
|
"@babel/parser": "^7.23.6",
|
||||||
"@vue/compiler-core": "3.3.4",
|
"@vue/compiler-core": "3.4.14",
|
||||||
"@vue/compiler-dom": "3.3.4",
|
"@vue/compiler-dom": "3.4.14",
|
||||||
"@vue/compiler-ssr": "3.3.4",
|
"@vue/compiler-ssr": "3.4.14",
|
||||||
"@vue/reactivity-transform": "3.3.4",
|
"@vue/shared": "3.4.14",
|
||||||
"@vue/shared": "3.3.4",
|
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"magic-string": "^0.30.0",
|
"magic-string": "^0.30.5",
|
||||||
"postcss": "^8.1.10",
|
"postcss": "^8.4.33",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-ssr": {
|
"node_modules/@vue/compiler-ssr": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.14.tgz",
|
||||||
"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
|
"integrity": "sha512-bXT6+oAGlFjTYVOTtFJ4l4Jab1wjsC0cfSfOe2B4Z0N2vD2zOBSQ9w694RsCfhjk+bC2DY5Gubb1rHZVii107Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-dom": "3.3.4",
|
"@vue/compiler-dom": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/devtools-api": {
|
"node_modules/@vue/devtools-api": {
|
||||||
"version": "6.5.0",
|
"version": "6.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
|
||||||
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==",
|
"integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@vue/reactivity": {
|
"node_modules/@vue/reactivity": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.14.tgz",
|
||||||
"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
|
"integrity": "sha512-xRYwze5Q4tK7tT2J4uy4XLhK/AIXdU5EBUu9PLnIHcOKXO0uyXpNNMzlQKuq7B+zwtq6K2wuUL39pHA6ZQzObw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/reactivity-transform": {
|
|
||||||
"version": "3.3.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
|
|
||||||
"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/parser": "^7.20.15",
|
|
||||||
"@vue/compiler-core": "3.3.4",
|
|
||||||
"@vue/shared": "3.3.4",
|
|
||||||
"estree-walker": "^2.0.2",
|
|
||||||
"magic-string": "^0.30.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/runtime-core": {
|
"node_modules/@vue/runtime-core": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.14.tgz",
|
||||||
"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
|
"integrity": "sha512-qu+NMkfujCoZL6cfqK5NOfxgXJROSlP2ZPs4CTcVR+mLrwl4TtycF5Tgo0QupkdBL+2kigc6EsJlTcuuZC1NaQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/reactivity": "3.3.4",
|
"@vue/reactivity": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/runtime-dom": {
|
"node_modules/@vue/runtime-dom": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.14.tgz",
|
||||||
"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
|
"integrity": "sha512-B85XmcR4E7XsirEHVqhmy4HPbRT9WLFWV9Uhie3OapV9m1MEN9+Er6hmUIE6d8/l2sUygpK9RstFM2bmHEUigA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/runtime-core": "3.3.4",
|
"@vue/runtime-core": "3.4.14",
|
||||||
"@vue/shared": "3.3.4",
|
"@vue/shared": "3.4.14",
|
||||||
"csstype": "^3.1.1"
|
"csstype": "^3.1.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/server-renderer": {
|
"node_modules/@vue/server-renderer": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.14.tgz",
|
||||||
"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
|
"integrity": "sha512-pwSKXQfYdJBTpvWHGEYI+akDE18TXAiLcGn+Q/2Fj8wQSHWztoo7PSvfMNqu6NDhp309QXXbPFEGCU5p85HqkA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-ssr": "3.3.4",
|
"@vue/compiler-ssr": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"vue": "3.3.4"
|
"vue": "3.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/shared": {
|
"node_modules/@vue/shared": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.14.tgz",
|
||||||
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==",
|
"integrity": "sha512-nmi3BtLpvqXAWoRZ6HQ+pFJOHBU4UnH3vD3opgmwXac7vhaHKA9nj1VeGjMggdB9eLtW83eHyPCmOU1qzdsC7Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@vueuse/core": {
|
"node_modules/@vueuse/core": {
|
||||||
"version": "10.4.0",
|
"version": "10.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz",
|
||||||
"integrity": "sha512-8JnnTwiuzUqfiYIW8H4FKG/g5ZMKSE+9auoFUwUAkzhqUjy24VbMkNlDBWetQCimiptx7RAO6u1IS55H6+p1Tg==",
|
"integrity": "sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/web-bluetooth": "^0.0.17",
|
"@types/web-bluetooth": "^0.0.20",
|
||||||
"@vueuse/metadata": "10.4.0",
|
"@vueuse/metadata": "10.7.2",
|
||||||
"@vueuse/shared": "10.4.0",
|
"@vueuse/shared": "10.7.2",
|
||||||
"vue-demi": ">=0.14.5"
|
"vue-demi": ">=0.14.6"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/antfu"
|
"url": "https://github.com/sponsors/antfu"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vueuse/core/node_modules/vue-demi": {
|
"node_modules/@vueuse/core/node_modules/vue-demi": {
|
||||||
"version": "0.14.5",
|
"version": "0.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -766,14 +753,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vueuse/integrations": {
|
"node_modules/@vueuse/integrations": {
|
||||||
"version": "10.4.0",
|
"version": "10.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.7.2.tgz",
|
||||||
"integrity": "sha512-KZ4wXX4fOQfQG3KHm2q2dHvuKoa9+eQRY3NxlgRkIYYaBxIkgHt4eLY9512RE78On1CjV+3822ZmOJrIcHGn9A==",
|
"integrity": "sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vueuse/core": "10.4.0",
|
"@vueuse/core": "10.7.2",
|
||||||
"@vueuse/shared": "10.4.0",
|
"@vueuse/shared": "10.7.2",
|
||||||
"vue-demi": ">=0.14.5"
|
"vue-demi": ">=0.14.6"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/antfu"
|
"url": "https://github.com/sponsors/antfu"
|
||||||
@@ -832,9 +819,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vueuse/integrations/node_modules/vue-demi": {
|
"node_modules/@vueuse/integrations/node_modules/vue-demi": {
|
||||||
"version": "0.14.5",
|
"version": "0.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -858,30 +845,30 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vueuse/metadata": {
|
"node_modules/@vueuse/metadata": {
|
||||||
"version": "10.4.0",
|
"version": "10.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz",
|
||||||
"integrity": "sha512-JNf9IR7ZBTDxWPfQlHhqBOv1VLO6ReTZi9HGY7RABjYHVpaEpjlHU7HpZDVOJGDa0gKITAbA2zMkNSBjKMcdaw==",
|
"integrity": "sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/antfu"
|
"url": "https://github.com/sponsors/antfu"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vueuse/shared": {
|
"node_modules/@vueuse/shared": {
|
||||||
"version": "10.4.0",
|
"version": "10.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz",
|
||||||
"integrity": "sha512-52asvLf5cbAS/h6xWjqoY4MgjxmFjnVNf/nA8BP7RbeIrIGcf+BZbeOcVo+92byqArXEJiBxptXpufQvbwJL/w==",
|
"integrity": "sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vue-demi": ">=0.14.5"
|
"vue-demi": ">=0.14.6"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/antfu"
|
"url": "https://github.com/sponsors/antfu"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vueuse/shared/node_modules/vue-demi": {
|
"node_modules/@vueuse/shared/node_modules/vue-demi": {
|
||||||
"version": "0.14.5",
|
"version": "0.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -933,11 +920,23 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/csstype": {
|
"node_modules/csstype": {
|
||||||
"version": "3.1.2",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||||
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
|
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/entities": {
|
||||||
|
"version": "4.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
||||||
|
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/esbuild": {
|
"node_modules/esbuild": {
|
||||||
"version": "0.18.20",
|
"version": "0.18.20",
|
||||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
|
||||||
@@ -982,9 +981,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/focus-trap": {
|
"node_modules/focus-trap": {
|
||||||
"version": "7.5.2",
|
"version": "7.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz",
|
||||||
"integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==",
|
"integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tabbable": "^6.2.0"
|
"tabbable": "^6.2.0"
|
||||||
@@ -1011,9 +1010,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/magic-string": {
|
"node_modules/magic-string": {
|
||||||
"version": "0.30.3",
|
"version": "0.30.5",
|
||||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz",
|
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
|
||||||
"integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==",
|
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||||
@@ -1029,15 +1028,15 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/minisearch": {
|
"node_modules/minisearch": {
|
||||||
"version": "6.1.0",
|
"version": "6.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.3.0.tgz",
|
||||||
"integrity": "sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==",
|
"integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/nanoid": {
|
"node_modules/nanoid": {
|
||||||
"version": "3.3.6",
|
"version": "3.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||||
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
|
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -1059,9 +1058,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.28",
|
"version": "8.4.33",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
|
||||||
"integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
|
"integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -1078,7 +1077,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"nanoid": "^3.3.6",
|
"nanoid": "^3.3.7",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
},
|
},
|
||||||
@@ -1097,9 +1096,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rollup": {
|
"node_modules/rollup": {
|
||||||
"version": "3.28.1",
|
"version": "3.29.4",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
|
||||||
"integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==",
|
"integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
@@ -1123,9 +1122,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/shiki": {
|
"node_modules/shiki": {
|
||||||
"version": "0.14.3",
|
"version": "0.14.7",
|
||||||
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.3.tgz",
|
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz",
|
||||||
"integrity": "sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==",
|
"integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ansi-sequence-parser": "^1.1.0",
|
"ansi-sequence-parser": "^1.1.0",
|
||||||
@@ -1239,16 +1238,24 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/vue": {
|
"node_modules/vue": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.14.tgz",
|
||||||
"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
|
"integrity": "sha512-Rop5Al/ZcBbBz+KjPZaZDgHDX0kUP4duEzDbm+1o91uxYUNmJrZSBuegsNIJvUGy+epLevNRNhLjm08VKTgGyw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-dom": "3.3.4",
|
"@vue/compiler-dom": "3.4.14",
|
||||||
"@vue/compiler-sfc": "3.3.4",
|
"@vue/compiler-sfc": "3.4.14",
|
||||||
"@vue/runtime-dom": "3.3.4",
|
"@vue/runtime-dom": "3.4.14",
|
||||||
"@vue/server-renderer": "3.3.4",
|
"@vue/server-renderer": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "*"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"typescript": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1418,9 +1425,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/parser": {
|
"@babel/parser": {
|
||||||
"version": "7.22.11",
|
"version": "7.23.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.11.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz",
|
||||||
"integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==",
|
"integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@docsearch/css": {
|
"@docsearch/css": {
|
||||||
@@ -1612,186 +1619,173 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/web-bluetooth": {
|
"@types/web-bluetooth": {
|
||||||
"version": "0.0.17",
|
"version": "0.0.20",
|
||||||
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz",
|
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
|
||||||
"integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==",
|
"integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@vue/compiler-core": {
|
"@vue/compiler-core": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.14.tgz",
|
||||||
"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
|
"integrity": "sha512-ro4Zzl/MPdWs7XwxT7omHRxAjMbDFRZEEjD+2m3NBf8YzAe3HuoSEZosXQo+m1GQ1G3LQ1LdmNh1RKTYe+ssEg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/parser": "^7.21.3",
|
"@babel/parser": "^7.23.6",
|
||||||
"@vue/shared": "3.3.4",
|
"@vue/shared": "3.4.14",
|
||||||
|
"entities": "^4.5.0",
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/compiler-dom": {
|
"@vue/compiler-dom": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.14.tgz",
|
||||||
"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
|
"integrity": "sha512-nOZTY+veWNa0DKAceNWxorAbWm0INHdQq7cejFaWM1WYnoNSJbSEKYtE7Ir6lR/+mo9fttZpPVI9ZFGJ1juUEQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/compiler-core": "3.3.4",
|
"@vue/compiler-core": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/compiler-sfc": {
|
"@vue/compiler-sfc": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.14.tgz",
|
||||||
"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
|
"integrity": "sha512-1vHc9Kv1jV+YBZC/RJxQJ9JCxildTI+qrhtDh6tPkR1O8S+olBUekimY0km0ZNn8nG1wjtFAe9XHij+YLR8cRQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/parser": "^7.20.15",
|
"@babel/parser": "^7.23.6",
|
||||||
"@vue/compiler-core": "3.3.4",
|
"@vue/compiler-core": "3.4.14",
|
||||||
"@vue/compiler-dom": "3.3.4",
|
"@vue/compiler-dom": "3.4.14",
|
||||||
"@vue/compiler-ssr": "3.3.4",
|
"@vue/compiler-ssr": "3.4.14",
|
||||||
"@vue/reactivity-transform": "3.3.4",
|
"@vue/shared": "3.4.14",
|
||||||
"@vue/shared": "3.3.4",
|
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"magic-string": "^0.30.0",
|
"magic-string": "^0.30.5",
|
||||||
"postcss": "^8.1.10",
|
"postcss": "^8.4.33",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/compiler-ssr": {
|
"@vue/compiler-ssr": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.14.tgz",
|
||||||
"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
|
"integrity": "sha512-bXT6+oAGlFjTYVOTtFJ4l4Jab1wjsC0cfSfOe2B4Z0N2vD2zOBSQ9w694RsCfhjk+bC2DY5Gubb1rHZVii107Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/compiler-dom": "3.3.4",
|
"@vue/compiler-dom": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/devtools-api": {
|
"@vue/devtools-api": {
|
||||||
"version": "6.5.0",
|
"version": "6.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
|
||||||
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==",
|
"integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@vue/reactivity": {
|
"@vue/reactivity": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.14.tgz",
|
||||||
"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
|
"integrity": "sha512-xRYwze5Q4tK7tT2J4uy4XLhK/AIXdU5EBUu9PLnIHcOKXO0uyXpNNMzlQKuq7B+zwtq6K2wuUL39pHA6ZQzObw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
|
||||||
},
|
|
||||||
"@vue/reactivity-transform": {
|
|
||||||
"version": "3.3.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
|
|
||||||
"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"@babel/parser": "^7.20.15",
|
|
||||||
"@vue/compiler-core": "3.3.4",
|
|
||||||
"@vue/shared": "3.3.4",
|
|
||||||
"estree-walker": "^2.0.2",
|
|
||||||
"magic-string": "^0.30.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/runtime-core": {
|
"@vue/runtime-core": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.14.tgz",
|
||||||
"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
|
"integrity": "sha512-qu+NMkfujCoZL6cfqK5NOfxgXJROSlP2ZPs4CTcVR+mLrwl4TtycF5Tgo0QupkdBL+2kigc6EsJlTcuuZC1NaQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/reactivity": "3.3.4",
|
"@vue/reactivity": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/runtime-dom": {
|
"@vue/runtime-dom": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.14.tgz",
|
||||||
"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
|
"integrity": "sha512-B85XmcR4E7XsirEHVqhmy4HPbRT9WLFWV9Uhie3OapV9m1MEN9+Er6hmUIE6d8/l2sUygpK9RstFM2bmHEUigA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/runtime-core": "3.3.4",
|
"@vue/runtime-core": "3.4.14",
|
||||||
"@vue/shared": "3.3.4",
|
"@vue/shared": "3.4.14",
|
||||||
"csstype": "^3.1.1"
|
"csstype": "^3.1.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/server-renderer": {
|
"@vue/server-renderer": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.14.tgz",
|
||||||
"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
|
"integrity": "sha512-pwSKXQfYdJBTpvWHGEYI+akDE18TXAiLcGn+Q/2Fj8wQSHWztoo7PSvfMNqu6NDhp309QXXbPFEGCU5p85HqkA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/compiler-ssr": "3.3.4",
|
"@vue/compiler-ssr": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/shared": {
|
"@vue/shared": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.14.tgz",
|
||||||
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==",
|
"integrity": "sha512-nmi3BtLpvqXAWoRZ6HQ+pFJOHBU4UnH3vD3opgmwXac7vhaHKA9nj1VeGjMggdB9eLtW83eHyPCmOU1qzdsC7Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@vueuse/core": {
|
"@vueuse/core": {
|
||||||
"version": "10.4.0",
|
"version": "10.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz",
|
||||||
"integrity": "sha512-8JnnTwiuzUqfiYIW8H4FKG/g5ZMKSE+9auoFUwUAkzhqUjy24VbMkNlDBWetQCimiptx7RAO6u1IS55H6+p1Tg==",
|
"integrity": "sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/web-bluetooth": "^0.0.17",
|
"@types/web-bluetooth": "^0.0.20",
|
||||||
"@vueuse/metadata": "10.4.0",
|
"@vueuse/metadata": "10.7.2",
|
||||||
"@vueuse/shared": "10.4.0",
|
"@vueuse/shared": "10.7.2",
|
||||||
"vue-demi": ">=0.14.5"
|
"vue-demi": ">=0.14.6"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vue-demi": {
|
"vue-demi": {
|
||||||
"version": "0.14.5",
|
"version": "0.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {}
|
"requires": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vueuse/integrations": {
|
"@vueuse/integrations": {
|
||||||
"version": "10.4.0",
|
"version": "10.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.7.2.tgz",
|
||||||
"integrity": "sha512-KZ4wXX4fOQfQG3KHm2q2dHvuKoa9+eQRY3NxlgRkIYYaBxIkgHt4eLY9512RE78On1CjV+3822ZmOJrIcHGn9A==",
|
"integrity": "sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vueuse/core": "10.4.0",
|
"@vueuse/core": "10.7.2",
|
||||||
"@vueuse/shared": "10.4.0",
|
"@vueuse/shared": "10.7.2",
|
||||||
"vue-demi": ">=0.14.5"
|
"vue-demi": ">=0.14.6"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vue-demi": {
|
"vue-demi": {
|
||||||
"version": "0.14.5",
|
"version": "0.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {}
|
"requires": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vueuse/metadata": {
|
"@vueuse/metadata": {
|
||||||
"version": "10.4.0",
|
"version": "10.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz",
|
||||||
"integrity": "sha512-JNf9IR7ZBTDxWPfQlHhqBOv1VLO6ReTZi9HGY7RABjYHVpaEpjlHU7HpZDVOJGDa0gKITAbA2zMkNSBjKMcdaw==",
|
"integrity": "sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@vueuse/shared": {
|
"@vueuse/shared": {
|
||||||
"version": "10.4.0",
|
"version": "10.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz",
|
||||||
"integrity": "sha512-52asvLf5cbAS/h6xWjqoY4MgjxmFjnVNf/nA8BP7RbeIrIGcf+BZbeOcVo+92byqArXEJiBxptXpufQvbwJL/w==",
|
"integrity": "sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"vue-demi": ">=0.14.5"
|
"vue-demi": ">=0.14.6"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vue-demi": {
|
"vue-demi": {
|
||||||
"version": "0.14.5",
|
"version": "0.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {}
|
"requires": {}
|
||||||
}
|
}
|
||||||
@@ -1826,9 +1820,15 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"csstype": {
|
"csstype": {
|
||||||
"version": "3.1.2",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||||
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
|
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"entities": {
|
||||||
|
"version": "4.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
||||||
|
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"esbuild": {
|
"esbuild": {
|
||||||
@@ -1868,9 +1868,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"focus-trap": {
|
"focus-trap": {
|
||||||
"version": "7.5.2",
|
"version": "7.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz",
|
||||||
"integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==",
|
"integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"tabbable": "^6.2.0"
|
"tabbable": "^6.2.0"
|
||||||
@@ -1890,9 +1890,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"magic-string": {
|
"magic-string": {
|
||||||
"version": "0.30.3",
|
"version": "0.30.5",
|
||||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz",
|
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
|
||||||
"integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==",
|
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||||
@@ -1905,15 +1905,15 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"minisearch": {
|
"minisearch": {
|
||||||
"version": "6.1.0",
|
"version": "6.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.3.0.tgz",
|
||||||
"integrity": "sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==",
|
"integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"nanoid": {
|
"nanoid": {
|
||||||
"version": "3.3.6",
|
"version": "3.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||||
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
|
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"picocolors": {
|
"picocolors": {
|
||||||
@@ -1923,12 +1923,12 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"postcss": {
|
"postcss": {
|
||||||
"version": "8.4.28",
|
"version": "8.4.33",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
|
||||||
"integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
|
"integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"nanoid": "^3.3.6",
|
"nanoid": "^3.3.7",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
}
|
}
|
||||||
@@ -1940,9 +1940,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"rollup": {
|
"rollup": {
|
||||||
"version": "3.28.1",
|
"version": "3.29.4",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
|
||||||
"integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==",
|
"integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fsevents": "~2.3.2"
|
"fsevents": "~2.3.2"
|
||||||
@@ -1956,9 +1956,9 @@
|
|||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"shiki": {
|
"shiki": {
|
||||||
"version": "0.14.3",
|
"version": "0.14.7",
|
||||||
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.3.tgz",
|
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz",
|
||||||
"integrity": "sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==",
|
"integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-sequence-parser": "^1.1.0",
|
"ansi-sequence-parser": "^1.1.0",
|
||||||
@@ -2023,16 +2023,16 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"vue": {
|
"vue": {
|
||||||
"version": "3.3.4",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.14.tgz",
|
||||||
"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
|
"integrity": "sha512-Rop5Al/ZcBbBz+KjPZaZDgHDX0kUP4duEzDbm+1o91uxYUNmJrZSBuegsNIJvUGy+epLevNRNhLjm08VKTgGyw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/compiler-dom": "3.3.4",
|
"@vue/compiler-dom": "3.4.14",
|
||||||
"@vue/compiler-sfc": "3.3.4",
|
"@vue/compiler-sfc": "3.4.14",
|
||||||
"@vue/runtime-dom": "3.3.4",
|
"@vue/runtime-dom": "3.4.14",
|
||||||
"@vue/server-renderer": "3.3.4",
|
"@vue/server-renderer": "3.4.14",
|
||||||
"@vue/shared": "3.3.4"
|
"@vue/shared": "3.4.14"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vitepress": "^1.0.0-rc.7"
|
"vitepress": "1.0.0-rc.7"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"docs:dev": "vitepress dev docs",
|
"docs:dev": "vitepress dev docs",
|
||||||
|
|||||||
@@ -4,8 +4,23 @@ Date: Fri, 31 Mar 2023 22:47:12 +0300
|
|||||||
Subject: [PATCH] Don't save Fireworks
|
Subject: [PATCH] Don't save Fireworks
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
|
index 5d16d2250bae9c982a0af9ad2580a63532b140f7..c74ca3eb638b29f5d981d132ac579d7e1942e244 100644
|
||||||
|
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
|
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
|
@@ -77,4 +77,9 @@ public class DivineWorldConfig {
|
||||||
|
final Map<String, Object> value = DivineConfig.getMap("world-settings." + worldName + "." + path, null);
|
||||||
|
return value.isEmpty() ? fallback : value;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ public boolean saveFireworks = false;
|
||||||
|
+ private void saveFireworks() {
|
||||||
|
+ saveFireworks = getBoolean("gameplay-mechanics.should-save-fireworks", saveFireworks);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
\ No newline at end of file
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
|
||||||
index 288910fb168ddc5d3a61971778b8038a56772fa8..f0b208b90f15ffd55572dbe94e2a1cc7a448aa0c 100644
|
index b2f08889139dc447f7071f1c81456035bf8de31e..3c364f5c4cafba917edb605de017aca2445b3d6f 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
|
||||||
@@ -357,4 +357,11 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier {
|
@@ -357,4 +357,11 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier {
|
||||||
@@ -16,7 +31,7 @@ index 288910fb168ddc5d3a61971778b8038a56772fa8..f0b208b90f15ffd55572dbe94e2a1cc7
|
|||||||
+ // DivineMC start - Don't save Fireworks
|
+ // DivineMC start - Don't save Fireworks
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public boolean shouldBeSaved() {
|
+ public boolean shouldBeSaved() {
|
||||||
+ return false;
|
+ return this.level().divinemcConfig.saveFireworks;
|
||||||
+ }
|
+ }
|
||||||
+ // DivineMC end
|
+ // DivineMC end
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ Subject: [PATCH] Boat Settings
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
index 5d16d2250bae9c982a0af9ad2580a63532b140f7..9eede8eb7fefc414f3a1207cd3ca2b33deb5ea13 100644
|
index c74ca3eb638b29f5d981d132ac579d7e1942e244..522703fae0898daa8651a34168bfcc78a3c8cb12 100644
|
||||||
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
@@ -77,4 +77,11 @@ public class DivineWorldConfig {
|
@@ -82,4 +82,11 @@ public class DivineWorldConfig {
|
||||||
final Map<String, Object> value = DivineConfig.getMap("world-settings." + worldName + "." + path, null);
|
private void saveFireworks() {
|
||||||
return value.isEmpty() ? fallback : value;
|
saveFireworks = getBoolean("gameplay-mechanics.should-save-fireworks", saveFireworks);
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ public boolean dontEjectPlayerFromBoatUnderwater = true;
|
+ public boolean dontEjectPlayerFromBoatUnderwater = true;
|
||||||
@@ -22,7 +22,7 @@ index 5d16d2250bae9c982a0af9ad2580a63532b140f7..9eede8eb7fefc414f3a1207cd3ca2b33
|
|||||||
}
|
}
|
||||||
\ No newline at end of file
|
\ No newline at end of file
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
||||||
index 26475c2d69537053a041ec9c2f8147842848a8fc..2e03520073af9bad8c629e161ebaf747de5197b6 100644
|
index 5036941829e4d98adbcfb0354b35244c52fc4472..76ef5000bbd805c40e0c927dc709c20c17d72f79 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
--- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
+++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
|
||||||
@@ -338,7 +338,18 @@ public class Boat extends VehicleEntity implements VariantHolder<Boat.Type> {
|
@@ -338,7 +338,18 @@ public class Boat extends VehicleEntity implements VariantHolder<Boat.Type> {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Despawn shulker bullets on owner death
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
index 9eede8eb7fefc414f3a1207cd3ca2b33deb5ea13..ca344da743a7503795bdaeff0a1b14e0721f5092 100644
|
index 522703fae0898daa8651a34168bfcc78a3c8cb12..53ccff176770be0d41469cbd71b9000f5e0cae3e 100644
|
||||||
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
@@ -84,4 +84,9 @@ public class DivineWorldConfig {
|
@@ -89,4 +89,9 @@ public class DivineWorldConfig {
|
||||||
dontEjectPlayerFromBoatUnderwater = getBoolean("gameplay-mechanics.boat.dont-eject-players-from-boat-underwater", dontEjectPlayerFromBoatUnderwater);
|
dontEjectPlayerFromBoatUnderwater = getBoolean("gameplay-mechanics.boat.dont-eject-players-from-boat-underwater", dontEjectPlayerFromBoatUnderwater);
|
||||||
alwaysAllowToEnterTheBoat = getBoolean("gameplay-mechanics.boat.always-allow-to-enter-the-boat", alwaysAllowToEnterTheBoat);
|
alwaysAllowToEnterTheBoat = getBoolean("gameplay-mechanics.boat.always-allow-to-enter-the-boat", alwaysAllowToEnterTheBoat);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Link: https://github.com/starlis/empirecraft/blob/master/patches/server/0050-Do-
|
|||||||
This is a permanent change. Some players who have /give perms may abuse this to create lags on server
|
This is a permanent change. Some players who have /give perms may abuse this to create lags on server
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/commands/GiveCommand.java b/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
diff --git a/src/main/java/net/minecraft/server/commands/GiveCommand.java b/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
||||||
index 0ff3b06a98b2f4514b2d861b92dd70fe678ae86c..b5646fbfb94ba07b8d723ffcf21e7506bc097f3e 100644
|
index 599172b994d75484f7c7e0ce6d3d3d771c1c44d0..3a92072ded969bbdfd0c57b665770b5ada47ab39 100644
|
||||||
--- a/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
--- a/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
||||||
+++ b/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
+++ b/src/main/java/net/minecraft/server/commands/GiveCommand.java
|
||||||
@@ -57,6 +57,11 @@ public class GiveCommand {
|
@@ -57,6 +57,11 @@ public class GiveCommand {
|
||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix chat signing
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
|
diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
|
||||||
index 85a8a687b1568a56e3e646b37ef78b562c1b8a82..ec6f6db1b0a1f0a1ed1016d36238c77a382d5b3a 100644
|
index 69971b2c59e541ac4100b84c84e2972de1b44ca9..e9616926d7b2a241c833b3f023818997e2bde570 100644
|
||||||
--- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
|
--- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
|
||||||
+++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
|
+++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
|
||||||
@@ -43,15 +43,7 @@ public class SignedMessageChain {
|
@@ -43,15 +43,7 @@ public class SignedMessageChain {
|
||||||
@@ -40,7 +40,7 @@ index 11dc1af9f8d8ce8c0a855d14a35077f5482ef0e8..def6f834d32b97e1065b17657e73d020
|
|||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
index ca344da743a7503795bdaeff0a1b14e0721f5092..7deda3f07cbe5c520ae44575d79f4e857f0b44a1 100644
|
index 53ccff176770be0d41469cbd71b9000f5e0cae3e..6273a41b4c06058fae7b20b9afd0563fcc17bda9 100644
|
||||||
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
@@ -1,5 +1,6 @@
|
@@ -1,5 +1,6 @@
|
||||||
@@ -58,7 +58,7 @@ index ca344da743a7503795bdaeff0a1b14e0721f5092..7deda3f07cbe5c520ae44575d79f4e85
|
|||||||
|
|
||||||
import static gq.bxteam.divinemc.configuration.DivineConfig.log;
|
import static gq.bxteam.divinemc.configuration.DivineConfig.log;
|
||||||
|
|
||||||
@@ -89,4 +91,23 @@ public class DivineWorldConfig {
|
@@ -94,4 +96,23 @@ public class DivineWorldConfig {
|
||||||
private void despawnShulkerBulletsOnOwnerDeath() {
|
private void despawnShulkerBulletsOnOwnerDeath() {
|
||||||
despawnShulkerBulletsOnOwnerDeath = getBoolean("gameplay-mechanics.mob.shulker.despawn-bullets-on-player-death", despawnShulkerBulletsOnOwnerDeath);
|
despawnShulkerBulletsOnOwnerDeath = getBoolean("gameplay-mechanics.mob.shulker.despawn-bullets-on-player-death", despawnShulkerBulletsOnOwnerDeath);
|
||||||
}
|
}
|
||||||
@@ -677,7 +677,7 @@ index 9017907c0ec67a37a506f09b7e4499cef7885279..281c810237603e667ad0345a3c93e735
|
|||||||
long expectedChunks = (long)regionFiles.length * (32L * 32L);
|
long expectedChunks = (long)regionFiles.length * (32L * 32L);
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 0dc5b32fbd3b3d9bb1189f46aab32057f30b18d1..01e20bdc992f40cea05ff45462acdb29376df6f7 100644
|
index b1dd8d66a524254a270a725f5f7a46f28e13b749..cd68584f2f842eea0d932f2baf5dcbd65f03f34a 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -884,7 +884,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -884,7 +884,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sat, 13 Jan 2024 18:58:14 +0300
|
||||||
|
Subject: [PATCH] Carpet-Fixes: RecipeManager Optimize
|
||||||
|
|
||||||
|
Original project: https://github.com/fxmorin/carpet-fixes
|
||||||
|
Improves: [Blast]Furnace/Campfire/Smoker/Stonecutter/Crafting/Sheep Color Choosing
|
||||||
|
|
||||||
|
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
index cc7f95d5460053d2475a62eb087682a2f28840a0..0c5a261bc83ad9b20b06b685914d880b67ff3ea2 100644
|
||||||
|
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
@@ -173,4 +173,9 @@ public class DivineConfig {
|
||||||
|
private static void chatMessageSignatures() {
|
||||||
|
chatMessageSignatures = getBoolean("settings.disable-chat-reports", chatMessageSignatures);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ public static boolean recipeManagerOptimization = true;
|
||||||
|
+ private static void optimizations() {
|
||||||
|
+ recipeManagerOptimization = getBoolean("settings.optimizations.recipe-manager-optimization", recipeManagerOptimization);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
index b81e1802c8dcc8ebdef96d70088c18379598a66b..d89bb2757c9871d48fdc9e33401bc548dfb66b4e 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
|
||||||
|
@@ -11,14 +11,9 @@ import com.google.gson.JsonParseException;
|
||||||
|
import com.mojang.datafixers.util.Pair;
|
||||||
|
import com.mojang.logging.LogUtils;
|
||||||
|
import com.mojang.serialization.JsonOps;
|
||||||
|
-import java.util.Collection;
|
||||||
|
-import java.util.Collections;
|
||||||
|
-import java.util.Comparator;
|
||||||
|
-import java.util.Iterator;
|
||||||
|
-import java.util.List;
|
||||||
|
-import java.util.Map;
|
||||||
|
+
|
||||||
|
+import java.util.*;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
-import java.util.Optional;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
@@ -137,7 +132,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
|
||||||
|
}
|
||||||
|
|
||||||
|
public <C extends Container, T extends Recipe<C>> List<RecipeHolder<T>> getAllRecipesFor(RecipeType<T> type) {
|
||||||
|
- return List.copyOf(this.byType(type).values());
|
||||||
|
+ return gq.bxteam.divinemc.configuration.DivineConfig.recipeManagerOptimization ? new ArrayList<>(this.byType(type).values()) : List.copyOf(this.byType(type).values()); // DivineMC - Carpet-Fixes: RecipeManager Optimize
|
||||||
|
}
|
||||||
|
|
||||||
|
public <C extends Container, T extends Recipe<C>> List<RecipeHolder<T>> getRecipesFor(RecipeType<T> type, C inventory, Level world) {
|
||||||
167
patches/server/0030-Carpet-Fixes-getBiome-Optimize.patch
Normal file
167
patches/server/0030-Carpet-Fixes-getBiome-Optimize.patch
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sat, 13 Jan 2024 19:19:16 +0300
|
||||||
|
Subject: [PATCH] Carpet-Fixes: getBiome Optimize
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
index 0c5a261bc83ad9b20b06b685914d880b67ff3ea2..9f50b2a3c8a576074d75719e6e2abbd984814d7f 100644
|
||||||
|
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
@@ -175,7 +175,9 @@ public class DivineConfig {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean recipeManagerOptimization = true;
|
||||||
|
+ public static boolean biomeManagerOptimization = true;
|
||||||
|
private static void optimizations() {
|
||||||
|
recipeManagerOptimization = getBoolean("settings.optimizations.recipe-manager-optimization", recipeManagerOptimization);
|
||||||
|
+ biomeManagerOptimization = getBoolean("settings.optimizations.biome-manager-optimization", biomeManagerOptimization);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/biome/BiomeManager.java b/src/main/java/net/minecraft/world/level/biome/BiomeManager.java
|
||||||
|
index 5695c5116c8a338b2e41aafcb2dc9f2146856970..26dc7ca097d2b16d7cfa96abd847a8f5744eb45d 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/biome/BiomeManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/biome/BiomeManager.java
|
||||||
|
@@ -14,6 +14,7 @@ public class BiomeManager {
|
||||||
|
private static final int ZOOM_MASK = 3;
|
||||||
|
private final BiomeManager.NoiseBiomeSource noiseBiomeSource;
|
||||||
|
private final long biomeZoomSeed;
|
||||||
|
+ private static final double maxOffset = 0.4500000001D; // DivineMC - Carpet-Fixes: getBiome Optimize
|
||||||
|
|
||||||
|
public BiomeManager(BiomeManager.NoiseBiomeSource storage, long seed) {
|
||||||
|
this.noiseBiomeSource = storage;
|
||||||
|
@@ -29,39 +30,103 @@ public class BiomeManager {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Holder<Biome> getBiome(BlockPos pos) {
|
||||||
|
- int i = pos.getX() - 2;
|
||||||
|
- int j = pos.getY() - 2;
|
||||||
|
- int k = pos.getZ() - 2;
|
||||||
|
- int l = i >> 2;
|
||||||
|
- int m = j >> 2;
|
||||||
|
- int n = k >> 2;
|
||||||
|
- double d = (double)(i & 3) / 4.0D;
|
||||||
|
- double e = (double)(j & 3) / 4.0D;
|
||||||
|
- double f = (double)(k & 3) / 4.0D;
|
||||||
|
- int o = 0;
|
||||||
|
- double g = Double.POSITIVE_INFINITY;
|
||||||
|
-
|
||||||
|
- for(int p = 0; p < 8; ++p) {
|
||||||
|
- boolean bl = (p & 4) == 0;
|
||||||
|
- boolean bl2 = (p & 2) == 0;
|
||||||
|
- boolean bl3 = (p & 1) == 0;
|
||||||
|
- int q = bl ? l : l + 1;
|
||||||
|
- int r = bl2 ? m : m + 1;
|
||||||
|
- int s = bl3 ? n : n + 1;
|
||||||
|
- double h = bl ? d : d - 1.0D;
|
||||||
|
- double t = bl2 ? e : e - 1.0D;
|
||||||
|
- double u = bl3 ? f : f - 1.0D;
|
||||||
|
- double v = getFiddledDistance(this.biomeZoomSeed, q, r, s, h, t, u);
|
||||||
|
- if (g > v) {
|
||||||
|
- o = p;
|
||||||
|
- g = v;
|
||||||
|
+ // DivineMC start - Carpet-Fixes: getBiome Optimize
|
||||||
|
+ if (gq.bxteam.divinemc.configuration.DivineConfig.biomeManagerOptimization) {
|
||||||
|
+ int xMinus2 = pos.getX() - 2;
|
||||||
|
+ int yMinus2 = pos.getY() - 2;
|
||||||
|
+ int zMinus2 = pos.getZ() - 2;
|
||||||
|
+ int x = xMinus2 >> 2; // BlockPos to BiomePos
|
||||||
|
+ int y = yMinus2 >> 2;
|
||||||
|
+ int z = zMinus2 >> 2;
|
||||||
|
+ double quartX = (double) (xMinus2 & 3) / 4.0D; // quartLocal divided by 4
|
||||||
|
+ double quartY = (double) (yMinus2 & 3) / 4.0D; // 0/4, 1/4, 2/4, 3/4
|
||||||
|
+ double quartZ = (double) (zMinus2 & 3) / 4.0D; // [0, 0.25, 0.5, 0.75]
|
||||||
|
+ int smallestX = 0;
|
||||||
|
+ double smallestDist = Double.POSITIVE_INFINITY;
|
||||||
|
+ for (int biomeX = 0; biomeX < 8; ++biomeX) {
|
||||||
|
+ boolean everyOtherQuad = (biomeX & 4) == 0; // 1 1 1 1 0 0 0 0
|
||||||
|
+ boolean everyOtherPair = (biomeX & 2) == 0; // 1 1 0 0 1 1 0 0
|
||||||
|
+ boolean everyOther = (biomeX & 1) == 0; // 1 0 1 0 1 0 1 0
|
||||||
|
+ double quartXX = everyOtherQuad ? quartX : quartX - 1.0D; //[-1.0,-0.75,-0.5,-0.25,0.0,0.25,0.5,0.75]
|
||||||
|
+ double quartYY = everyOtherPair ? quartY : quartY - 1.0D;
|
||||||
|
+ double quartZZ = everyOther ? quartZ : quartZ - 1.0D;
|
||||||
|
+
|
||||||
|
+ double maxQuartYY = 0.0D, maxQuartZZ = 0.0D;
|
||||||
|
+ if (biomeX != 0) {
|
||||||
|
+ maxQuartYY = Mth.square(Math.max(quartYY + maxOffset, Math.abs(quartYY - maxOffset)));
|
||||||
|
+ maxQuartZZ = Mth.square(Math.max(quartZZ + maxOffset, Math.abs(quartZZ - maxOffset)));
|
||||||
|
+ double maxQuartXX = Mth.square(Math.max(quartXX + maxOffset, Math.abs(quartXX - maxOffset)));
|
||||||
|
+ if (smallestDist < maxQuartXX + maxQuartYY + maxQuartZZ) continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ int xx = everyOtherQuad ? x : x + 1;
|
||||||
|
+ int yy = everyOtherPair ? y : y + 1;
|
||||||
|
+ int zz = everyOther ? z : z + 1;
|
||||||
|
+
|
||||||
|
+ //I transferred the code from method_38106 to here, so I could call continue halfway through
|
||||||
|
+ long seed = LinearCongruentialGenerator.next(this.biomeZoomSeed, xx);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, yy);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, zz);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, xx);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, yy);
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, zz);
|
||||||
|
+ double offsetX = getFiddle(seed);
|
||||||
|
+ double sqrX = Mth.square(quartXX + offsetX);
|
||||||
|
+ if (biomeX != 0 && smallestDist < sqrX + maxQuartYY + maxQuartZZ) continue; //skip the rest of the loop
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, this.biomeZoomSeed);
|
||||||
|
+ double offsetY = getFiddle(seed);
|
||||||
|
+ double sqrY = Mth.square(quartYY + offsetY);
|
||||||
|
+ if (biomeX != 0 && smallestDist < sqrX + sqrY + maxQuartZZ) continue; // skip the rest of the loop
|
||||||
|
+ seed = LinearCongruentialGenerator.next(seed, this.biomeZoomSeed);
|
||||||
|
+ double offsetZ = getFiddle(seed);
|
||||||
|
+ double biomeDist = sqrX + sqrY + Mth.square(quartZZ + offsetZ);
|
||||||
|
+
|
||||||
|
+ if (smallestDist > biomeDist) {
|
||||||
|
+ smallestX = biomeX;
|
||||||
|
+ smallestDist = biomeDist;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ return this.noiseBiomeSource.getNoiseBiome(
|
||||||
|
+ (smallestX & 4) == 0 ? x : x + 1,
|
||||||
|
+ (smallestX & 2) == 0 ? y : y + 1,
|
||||||
|
+ (smallestX & 1) == 0 ? z : z + 1
|
||||||
|
+ );
|
||||||
|
+ } else {
|
||||||
|
+ int i = pos.getX() - 2;
|
||||||
|
+ int j = pos.getY() - 2;
|
||||||
|
+ int k = pos.getZ() - 2;
|
||||||
|
+ int l = i >> 2;
|
||||||
|
+ int m = j >> 2;
|
||||||
|
+ int n = k >> 2;
|
||||||
|
+ double d = (double)(i & 3) / 4.0D;
|
||||||
|
+ double e = (double)(j & 3) / 4.0D;
|
||||||
|
+ double f = (double)(k & 3) / 4.0D;
|
||||||
|
+ int o = 0;
|
||||||
|
+ double g = Double.POSITIVE_INFINITY;
|
||||||
|
+
|
||||||
|
+ for(int p = 0; p < 8; ++p) {
|
||||||
|
+ boolean bl = (p & 4) == 0;
|
||||||
|
+ boolean bl2 = (p & 2) == 0;
|
||||||
|
+ boolean bl3 = (p & 1) == 0;
|
||||||
|
+ int q = bl ? l : l + 1;
|
||||||
|
+ int r = bl2 ? m : m + 1;
|
||||||
|
+ int s = bl3 ? n : n + 1;
|
||||||
|
+ double h = bl ? d : d - 1.0D;
|
||||||
|
+ double t = bl2 ? e : e - 1.0D;
|
||||||
|
+ double u = bl3 ? f : f - 1.0D;
|
||||||
|
+ double v = getFiddledDistance(this.biomeZoomSeed, q, r, s, h, t, u);
|
||||||
|
+ if (g > v) {
|
||||||
|
+ o = p;
|
||||||
|
+ g = v;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
|
||||||
|
- int w = (o & 4) == 0 ? l : l + 1;
|
||||||
|
- int x = (o & 2) == 0 ? m : m + 1;
|
||||||
|
- int y = (o & 1) == 0 ? n : n + 1;
|
||||||
|
- return this.noiseBiomeSource.getNoiseBiome(w, x, y);
|
||||||
|
+ int w = (o & 4) == 0 ? l : l + 1;
|
||||||
|
+ int x = (o & 2) == 0 ? m : m + 1;
|
||||||
|
+ int y = (o & 1) == 0 ? n : n + 1;
|
||||||
|
+ return this.noiseBiomeSource.getNoiseBiome(w, x, y);
|
||||||
|
+ }
|
||||||
|
+ // DivineMC end
|
||||||
|
}
|
||||||
|
|
||||||
|
public Holder<Biome> getNoiseBiomeAtPosition(double x, double y, double z) {
|
||||||
@@ -3,9 +3,11 @@ From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
|||||||
Date: Sat, 8 Apr 2023 01:22:35 +0300
|
Date: Sat, 8 Apr 2023 01:22:35 +0300
|
||||||
Subject: [PATCH] lithium: collections.goals
|
Subject: [PATCH] lithium: collections.goals
|
||||||
|
|
||||||
|
Original code by CaffeineMC, licensed under LGPL v3
|
||||||
|
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||||
index 8a70bc63e12838f45fa3eade74f2899438715886..93a97455587db28fed1b2fa7ee8063ad08c5120e 100644
|
index 02978315bc2b828cc603ce7478408f3f82c249c2..d8ee71cb3afc0f63669d26c4160f7cd7ed2fd453 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
--- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||||
@@ -13,6 +13,7 @@ import java.util.function.Supplier;
|
@@ -13,6 +13,7 @@ import java.util.function.Supplier;
|
||||||
@@ -3,6 +3,8 @@ From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
|||||||
Date: Sat, 8 Apr 2023 01:28:01 +0300
|
Date: Sat, 8 Apr 2023 01:28:01 +0300
|
||||||
Subject: [PATCH] lithium: collections.gamerules
|
Subject: [PATCH] lithium: collections.gamerules
|
||||||
|
|
||||||
|
Original code by CaffeineMC, licensed under LGPL v3
|
||||||
|
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java
|
diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java
|
||||||
index a9be16e53a9df34af3495048aa9af7b1a3efea4a..0c360ca01bec47c738ef80d74986599af70373da 100644
|
index a9be16e53a9df34af3495048aa9af7b1a3efea4a..0c360ca01bec47c738ef80d74986599af70373da 100644
|
||||||
28
patches/server/0034-lithium-collections.attributes.patch
Normal file
28
patches/server/0034-lithium-collections.attributes.patch
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sat, 13 Jan 2024 20:04:54 +0300
|
||||||
|
Subject: [PATCH] lithium: collections.attributes
|
||||||
|
|
||||||
|
Original code by CaffeineMC, licensed under LGPL v3
|
||||||
|
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
||||||
|
index 6b0855cffb901dbc7dcc5fd44506275206bc9a2d..d3e52ae7c563cf5331ac6ebcffa5daffa5fff7df 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
||||||
|
@@ -17,11 +17,13 @@ import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.nbt.ListTag;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
+import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap; // DivineMC
|
||||||
|
+import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; // DivineMC
|
||||||
|
|
||||||
|
public class AttributeMap {
|
||||||
|
private static final Logger LOGGER = LogUtils.getLogger();
|
||||||
|
- private final Map<Attribute, AttributeInstance> attributes = Maps.newHashMap();
|
||||||
|
- private final Set<AttributeInstance> dirtyAttributes = Sets.newHashSet();
|
||||||
|
+ private final Map<Attribute, AttributeInstance> attributes = new Reference2ReferenceOpenHashMap<>(0); // DivineMC
|
||||||
|
+ private final Set<AttributeInstance> dirtyAttributes = new ReferenceOpenHashSet<>(0); // DivineMC
|
||||||
|
private final AttributeSupplier supplier;
|
||||||
|
private final java.util.function.Function<Attribute, AttributeInstance> createInstance; // Pufferfish
|
||||||
|
private final net.minecraft.world.entity.LivingEntity entity; // Purpur
|
||||||
41
patches/server/0035-lithium-collections.entity_by_type.patch
Normal file
41
patches/server/0035-lithium-collections.entity_by_type.patch
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sat, 13 Jan 2024 20:12:23 +0300
|
||||||
|
Subject: [PATCH] lithium: collections.entity_by_type
|
||||||
|
|
||||||
|
Original code by CaffeineMC, licensed under LGPL v3
|
||||||
|
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java
|
||||||
|
index 50a9f33aa31e9273c7c52d4bb2b02f0f884f7ba5..76a6febcfc3e5ab58dabac01b1d24050b14fcad6 100644
|
||||||
|
--- a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java
|
||||||
|
+++ b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java
|
||||||
|
@@ -3,7 +3,6 @@ package net.minecraft.util;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.common.collect.Iterators;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
-import com.google.common.collect.Maps;
|
||||||
|
import java.util.AbstractCollection;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
|
@@ -11,9 +10,10 @@ import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
+import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap; // DivineMC
|
||||||
|
|
||||||
|
public class ClassInstanceMultiMap<T> extends AbstractCollection<T> {
|
||||||
|
- private final Map<Class<?>, List<T>> byClass = Maps.newHashMap();
|
||||||
|
+ private final Map<Class<?>, List<T>> byClass = new Reference2ReferenceOpenHashMap<>(); // DivineMC
|
||||||
|
private final Class<T> baseClass;
|
||||||
|
private final List<T> allInstances = Lists.newArrayList();
|
||||||
|
|
||||||
|
@@ -58,7 +58,7 @@ public class ClassInstanceMultiMap<T> extends AbstractCollection<T> {
|
||||||
|
if (!this.baseClass.isAssignableFrom(type)) {
|
||||||
|
throw new IllegalArgumentException("Don't know how to search for " + type);
|
||||||
|
} else {
|
||||||
|
- List<? extends T> list = this.byClass.computeIfAbsent(type, (typeClass) -> {
|
||||||
|
+ List list = this.byClass.computeIfAbsent(type, (typeClass) -> { // DivineMC - decompiling fix
|
||||||
|
return this.allInstances.stream().filter(typeClass::isInstance).collect(Collectors.toList());
|
||||||
|
});
|
||||||
|
return Collections.unmodifiableCollection(list);
|
||||||
76
patches/server/0036-lithium-precompute-shape-arrays.patch
Normal file
76
patches/server/0036-lithium-precompute-shape-arrays.patch
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sat, 13 Jan 2024 20:29:38 +0300
|
||||||
|
Subject: [PATCH] lithium: precompute shape arrays
|
||||||
|
|
||||||
|
Original code by CaffeineMC, licensed under LGPL v3
|
||||||
|
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java
|
||||||
|
index b805e57d5a67d77d226cd8154e970050e2e8ef4a..c72ea0514baadc8d5fde93ff573d91a9fe7cc04c 100644
|
||||||
|
--- a/src/main/java/net/minecraft/core/Direction.java
|
||||||
|
+++ b/src/main/java/net/minecraft/core/Direction.java
|
||||||
|
@@ -39,7 +39,7 @@ public enum Direction implements StringRepresentable {
|
||||||
|
private final Direction.Axis axis;
|
||||||
|
private final Direction.AxisDirection axisDirection;
|
||||||
|
private final Vec3i normal;
|
||||||
|
- private static final Direction[] VALUES = values();
|
||||||
|
+ public static final Direction[] VALUES = values(); // DivineMC
|
||||||
|
private static final Direction[] BY_3D_DATA = Arrays.stream(VALUES).sorted(Comparator.comparingInt((direction) -> {
|
||||||
|
return direction.data3d;
|
||||||
|
})).toArray((i) -> {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/phys/shapes/CubePointRange.java b/src/main/java/net/minecraft/world/phys/shapes/CubePointRange.java
|
||||||
|
index a544db042c8d2ecec8d323770552c4f10ca758a6..fc6a8b1cf33427320a60e3f2d9894ed2f0177bf7 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/phys/shapes/CubePointRange.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/phys/shapes/CubePointRange.java
|
||||||
|
@@ -4,6 +4,7 @@ import it.unimi.dsi.fastutil.doubles.AbstractDoubleList;
|
||||||
|
|
||||||
|
public class CubePointRange extends AbstractDoubleList {
|
||||||
|
private final int parts;
|
||||||
|
+ private double scale; // DivineMC - lithium: precompute shape arrays
|
||||||
|
|
||||||
|
CubePointRange(int sectionCount) {
|
||||||
|
if (sectionCount <= 0) {
|
||||||
|
@@ -11,10 +12,11 @@ public class CubePointRange extends AbstractDoubleList {
|
||||||
|
} else {
|
||||||
|
this.parts = sectionCount;
|
||||||
|
}
|
||||||
|
+ this.scale = 1.0D / sectionCount; // DivineMC - lithium: precompute shape arrays
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getDouble(int i) {
|
||||||
|
- return (double)i / (double)this.parts;
|
||||||
|
+ return i * this.scale; // DivineMC - lithium: precompute shape arrays
|
||||||
|
}
|
||||||
|
|
||||||
|
public int size() {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java b/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java
|
||||||
|
index 110405e6e70d980d3e09f04d79562b32a7413071..ef6027b0d664d0dfdff80ed023c9f4790d4f0f5a 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/phys/shapes/CubeVoxelShape.java
|
||||||
|
@@ -5,6 +5,8 @@ import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
|
||||||
|
public final class CubeVoxelShape extends VoxelShape {
|
||||||
|
+ private DoubleList[] list; // DivineMC - lithium: precompute shape arrays
|
||||||
|
+
|
||||||
|
protected CubeVoxelShape(DiscreteVoxelShape voxels) {
|
||||||
|
super(voxels);
|
||||||
|
this.initCache(); // Paper - optimise collisions
|
||||||
|
@@ -12,7 +14,15 @@ public final class CubeVoxelShape extends VoxelShape {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected DoubleList getCoords(Direction.Axis axis) {
|
||||||
|
- return new CubePointRange(this.shape.getSize(axis));
|
||||||
|
+ // DivineMC start - lithium: precompute shape arrays
|
||||||
|
+ if (this.list == null) {
|
||||||
|
+ this.list = new DoubleList[Direction.Axis.VALUES.length];
|
||||||
|
+ for (Direction.Axis existingAxis : Direction.Axis.VALUES) {
|
||||||
|
+ this.list[existingAxis.ordinal()] = new CubePointRange(this.shape.getSize(axis));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ return this.list[axis.ordinal()];
|
||||||
|
+ // DivineMC end
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sat, 13 Jan 2024 20:37:54 +0300
|
||||||
|
Subject: [PATCH] lithium: entity.fast_elytra_check + entity.fast_hand_swing
|
||||||
|
|
||||||
|
Original code by CaffeineMC, licensed under LGPL v3
|
||||||
|
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
index 594826f06fc142e3e1255d3eaef15ced9935e262..70d1481c42322f7307e83b2c7bb10aec663227c9 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
@@ -2602,6 +2602,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void updateSwingTime() {
|
||||||
|
+ if (!this.swinging && this.swingTime == 0) return; // DivineMC - lithium: entity.fast_hand_swing
|
||||||
|
int i = this.getCurrentSwingDuration();
|
||||||
|
|
||||||
|
if (this.swinging) {
|
||||||
|
@@ -3633,6 +3634,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateFallFlying() {
|
||||||
|
+ if (!this.isFallFlying()) return; // DivineMC - lithium: entity.fast_elytra_check
|
||||||
|
boolean flag = this.getSharedFlag(7);
|
||||||
|
|
||||||
|
if (flag && !this.onGround() && !this.isPassenger() && !this.hasEffect(MobEffects.LEVITATION)) {
|
||||||
122
patches/server/0038-Carpet-Fixes-Sheep-Optimization.patch
Normal file
122
patches/server/0038-Carpet-Fixes-Sheep-Optimization.patch
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sat, 13 Jan 2024 20:59:28 +0300
|
||||||
|
Subject: [PATCH] Carpet-Fixes: Sheep Optimization
|
||||||
|
|
||||||
|
Original project: https://github.com/fxmorin/carpet-fixes
|
||||||
|
|
||||||
|
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
index 9f50b2a3c8a576074d75719e6e2abbd984814d7f..da28482bb10cdeb23a54338354e9c54b661846d7 100644
|
||||||
|
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
|
||||||
|
@@ -176,8 +176,10 @@ public class DivineConfig {
|
||||||
|
|
||||||
|
public static boolean recipeManagerOptimization = true;
|
||||||
|
public static boolean biomeManagerOptimization = true;
|
||||||
|
+ public static boolean sheepOptimization = true;
|
||||||
|
private static void optimizations() {
|
||||||
|
recipeManagerOptimization = getBoolean("settings.optimizations.recipe-manager-optimization", recipeManagerOptimization);
|
||||||
|
biomeManagerOptimization = getBoolean("settings.optimizations.biome-manager-optimization", biomeManagerOptimization);
|
||||||
|
+ sheepOptimization = getBoolean("settings.optimizations.sheep-optimization", sheepOptimization);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/gq/bxteam/divinemc/util/carpetfixes/ProperDyeMixin.java b/src/main/java/gq/bxteam/divinemc/util/carpetfixes/ProperDyeMixin.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..87d5a82c5dc3ef4bcbeaf9ef837230269a1670df
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/gq/bxteam/divinemc/util/carpetfixes/ProperDyeMixin.java
|
||||||
|
@@ -0,0 +1,46 @@
|
||||||
|
+package gq.bxteam.divinemc.util.carpetfixes;
|
||||||
|
+
|
||||||
|
+import net.minecraft.world.item.DyeColor;
|
||||||
|
+
|
||||||
|
+public class ProperDyeMixin {
|
||||||
|
+ public static DyeColor properDye(DyeColor firstColor, DyeColor secondColor) {
|
||||||
|
+ if (firstColor.equals(secondColor)) return firstColor;
|
||||||
|
+ switch (firstColor) {
|
||||||
|
+ case WHITE -> {
|
||||||
|
+ switch (secondColor) {
|
||||||
|
+ case BLUE -> {return DyeColor.LIGHT_BLUE;}
|
||||||
|
+ case GRAY -> {return DyeColor.LIGHT_GRAY;}
|
||||||
|
+ case BLACK -> {return DyeColor.GRAY;}
|
||||||
|
+ case GREEN -> {return DyeColor.LIME;}
|
||||||
|
+ case RED -> {return DyeColor.PINK;}
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ case BLUE -> {
|
||||||
|
+ switch (secondColor) {
|
||||||
|
+ case WHITE -> {return DyeColor.LIGHT_BLUE;}
|
||||||
|
+ case GREEN -> {return DyeColor.CYAN;}
|
||||||
|
+ case RED -> {return DyeColor.PURPLE;}
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ case RED -> {
|
||||||
|
+ switch (secondColor) {
|
||||||
|
+ case YELLOW -> {return DyeColor.ORANGE;}
|
||||||
|
+ case WHITE -> {return DyeColor.PINK;}
|
||||||
|
+ case BLUE -> {return DyeColor.PURPLE;}
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ case GREEN -> {
|
||||||
|
+ switch (secondColor) {
|
||||||
|
+ case BLUE -> {return DyeColor.CYAN;}
|
||||||
|
+ case WHITE -> {return DyeColor.LIME;}
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ case YELLOW -> {if (secondColor.equals(DyeColor.RED)) return DyeColor.ORANGE;}
|
||||||
|
+ case PURPLE -> {if (secondColor.equals(DyeColor.PINK)) return DyeColor.MAGENTA;}
|
||||||
|
+ case PINK -> {if (secondColor.equals(DyeColor.PURPLE)) return DyeColor.MAGENTA;}
|
||||||
|
+ case GRAY -> {if (secondColor.equals(DyeColor.WHITE)) return DyeColor.LIGHT_GRAY;}
|
||||||
|
+ case BLACK -> {if (secondColor.equals(DyeColor.WHITE)) return DyeColor.GRAY;}
|
||||||
|
+ }
|
||||||
|
+ return null;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||||
|
index 658f7943d275267d3fc556572831cc095259d12e..768c9fc58af7204c79cb1ea2430a58482045bf6c 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||||
|
@@ -457,21 +457,30 @@ public class Sheep extends Animal implements Shearable {
|
||||||
|
return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // DivineMC start - Carpet-Fixes: Sheep Optimization
|
||||||
|
private DyeColor getOffspringColor(Animal firstParent, Animal secondParent) {
|
||||||
|
- DyeColor enumcolor = ((Sheep) firstParent).getColor();
|
||||||
|
- DyeColor enumcolor1 = ((Sheep) secondParent).getColor();
|
||||||
|
- CraftingContainer inventorycrafting = Sheep.makeContainer(enumcolor, enumcolor1);
|
||||||
|
- Optional<Item> optional = this.level().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, inventorycrafting, this.level()).map((recipeholder) -> { // CraftBukkit - decompile error
|
||||||
|
- return ((CraftingRecipe) recipeholder.value()).assemble(inventorycrafting, this.level().registryAccess());
|
||||||
|
- }).map(ItemStack::getItem);
|
||||||
|
-
|
||||||
|
- Objects.requireNonNull(DyeItem.class);
|
||||||
|
- optional = optional.filter(DyeItem.class::isInstance);
|
||||||
|
- Objects.requireNonNull(DyeItem.class);
|
||||||
|
- return (DyeColor) optional.map(DyeItem.class::cast).map(DyeItem::getDyeColor).orElseGet(() -> {
|
||||||
|
- return this.level().random.nextBoolean() ? enumcolor : enumcolor1;
|
||||||
|
- });
|
||||||
|
+ DyeColor firstColor = ((Sheep) firstParent).getColor();
|
||||||
|
+ DyeColor secondColor = ((Sheep) secondParent).getColor();
|
||||||
|
+
|
||||||
|
+ if (gq.bxteam.divinemc.configuration.DivineConfig.sheepOptimization) {
|
||||||
|
+ DyeColor col = gq.bxteam.divinemc.util.carpetfixes.ProperDyeMixin.properDye(firstColor, secondColor);
|
||||||
|
+ if (col == null) col = this.level().random.nextBoolean() ? firstColor : secondColor;
|
||||||
|
+ return col;
|
||||||
|
+ } else {
|
||||||
|
+ CraftingContainer inventorycrafting = Sheep.makeContainer(firstColor, secondColor);
|
||||||
|
+ Optional<Item> optional = this.level().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, inventorycrafting, this.level()).map((recipeholder) -> { // CraftBukkit - decompile error
|
||||||
|
+ return ((CraftingRecipe) recipeholder.value()).assemble(inventorycrafting, this.level().registryAccess());
|
||||||
|
+ }).map(ItemStack::getItem);
|
||||||
|
+
|
||||||
|
+ Objects.requireNonNull(DyeItem.class);
|
||||||
|
+ optional = optional.filter(DyeItem.class::isInstance);
|
||||||
|
+ Objects.requireNonNull(DyeItem.class);
|
||||||
|
+ return (DyeColor) optional.map(DyeItem.class::cast).map(DyeItem::getDyeColor).orElseGet(() -> {
|
||||||
|
+ return this.level().random.nextBoolean() ? firstColor : secondColor;
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
+ // DivineMC end
|
||||||
|
|
||||||
|
private static CraftingContainer makeContainer(DyeColor firstColor, DyeColor secondColor) {
|
||||||
|
TransientCraftingContainer transientcraftingcontainer = new TransientCraftingContainer(new AbstractContainerMenu((MenuType) null, -1) {
|
||||||
1501
patches/server/0039-Async-Pathfinding.patch
Normal file
1501
patches/server/0039-Async-Pathfinding.patch
Normal file
File diff suppressed because it is too large
Load Diff
269
patches/server/0040-C2ME-opts-math.patch
Normal file
269
patches/server/0040-C2ME-opts-math.patch
Normal file
@@ -0,0 +1,269 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sun, 14 Jan 2024 01:54:25 +0300
|
||||||
|
Subject: [PATCH] C2ME: opts math
|
||||||
|
|
||||||
|
Original code by RelativityMC, licensed under MIT
|
||||||
|
You can find the original code on https://github.com/RelativityMC/C2ME-fabric (Yarn mappings)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java b/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java
|
||||||
|
index fb84d703b4461343d50510d7c9be32fc1f09ed22..4a777b668fc78fc49d8cb8d5959ddea9816ce683 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java
|
||||||
|
@@ -11,6 +11,27 @@ public final class ImprovedNoise {
|
||||||
|
public final double yo;
|
||||||
|
public final double zo;
|
||||||
|
|
||||||
|
+ // DivineMC start - C2ME: opts math
|
||||||
|
+ private static final double[] FLAT_SIMPLEX_GRAD = new double[]{
|
||||||
|
+ 1, 1, 0, 0,
|
||||||
|
+ -1, 1, 0, 0,
|
||||||
|
+ 1, -1, 0, 0,
|
||||||
|
+ -1, -1, 0, 0,
|
||||||
|
+ 1, 0, 1, 0,
|
||||||
|
+ -1, 0, 1, 0,
|
||||||
|
+ 1, 0, -1, 0,
|
||||||
|
+ -1, 0, -1, 0,
|
||||||
|
+ 0, 1, 1, 0,
|
||||||
|
+ 0, -1, 1, 0,
|
||||||
|
+ 0, 1, -1, 0,
|
||||||
|
+ 0, -1, -1, 0,
|
||||||
|
+ 1, 1, 0, 0,
|
||||||
|
+ 0, -1, 1, 0,
|
||||||
|
+ -1, 1, 0, 0,
|
||||||
|
+ 0, -1, -1, 0,
|
||||||
|
+ };
|
||||||
|
+ // DivineMC end
|
||||||
|
+
|
||||||
|
public ImprovedNoise(RandomSource random) {
|
||||||
|
this.xo = random.nextDouble() * 256.0D;
|
||||||
|
this.yo = random.nextDouble() * 256.0D;
|
||||||
|
@@ -34,34 +55,40 @@ public final class ImprovedNoise {
|
||||||
|
return this.noise(x, y, z, 0.0D, 0.0D);
|
||||||
|
}
|
||||||
|
|
||||||
|
- /** @deprecated */
|
||||||
|
+ // DivineMC start - C2ME: opts math
|
||||||
|
+ /*
|
||||||
|
+ @author ishland
|
||||||
|
+ * @reason optimize: remove frequent type conversions
|
||||||
|
+ */
|
||||||
|
+ /**
|
||||||
|
+ * @deprecated
|
||||||
|
+ */
|
||||||
|
@Deprecated
|
||||||
|
public double noise(double x, double y, double z, double yScale, double yMax) {
|
||||||
|
double d = x + this.xo;
|
||||||
|
double e = y + this.yo;
|
||||||
|
double f = z + this.zo;
|
||||||
|
- int i = Mth.floor(d);
|
||||||
|
- int j = Mth.floor(e);
|
||||||
|
- int k = Mth.floor(f);
|
||||||
|
- double g = d - (double)i;
|
||||||
|
- double h = e - (double)j;
|
||||||
|
- double l = f - (double)k;
|
||||||
|
- double o;
|
||||||
|
- if (yScale != 0.0D) {
|
||||||
|
+ double i = Mth.floor(d);
|
||||||
|
+ double j = Mth.floor(e);
|
||||||
|
+ double k = Mth.floor(f);
|
||||||
|
+ double g = d - i;
|
||||||
|
+ double h = e - j;
|
||||||
|
+ double l = f - k;
|
||||||
|
+ double o = 0.0D;
|
||||||
|
+ if (yScale != 0.0) {
|
||||||
|
double m;
|
||||||
|
- if (yMax >= 0.0D && yMax < h) {
|
||||||
|
+ if (yMax >= 0.0 && yMax < h) {
|
||||||
|
m = yMax;
|
||||||
|
} else {
|
||||||
|
m = h;
|
||||||
|
}
|
||||||
|
|
||||||
|
- o = (double)Mth.floor(m / yScale + (double)1.0E-7F) * yScale;
|
||||||
|
- } else {
|
||||||
|
- o = 0.0D;
|
||||||
|
+ o = Mth.floor(m / yScale + 1.0E-7F) * yScale;
|
||||||
|
}
|
||||||
|
|
||||||
|
- return this.sampleAndLerp(i, j, k, g, h - o, l, h);
|
||||||
|
+ return this.sampleAndLerp((int) i, (int) j, (int) k, g, h - o, l, h);
|
||||||
|
}
|
||||||
|
+ // DivineMC end
|
||||||
|
|
||||||
|
public double noiseWithDerivative(double x, double y, double z, double[] ds) {
|
||||||
|
double d = x + this.xo;
|
||||||
|
@@ -84,26 +111,76 @@ public final class ImprovedNoise {
|
||||||
|
return this.p[input & 255] & 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
- private double sampleAndLerp(int sectionX, int sectionY, int sectionZ, double localX, double localY, double localZ, double fadeLocalY) {
|
||||||
|
- int i = this.p(sectionX);
|
||||||
|
- int j = this.p(sectionX + 1);
|
||||||
|
- int k = this.p(i + sectionY);
|
||||||
|
- int l = this.p(i + sectionY + 1);
|
||||||
|
- int m = this.p(j + sectionY);
|
||||||
|
- int n = this.p(j + sectionY + 1);
|
||||||
|
- double d = gradDot(this.p(k + sectionZ), localX, localY, localZ);
|
||||||
|
- double e = gradDot(this.p(m + sectionZ), localX - 1.0D, localY, localZ);
|
||||||
|
- double f = gradDot(this.p(l + sectionZ), localX, localY - 1.0D, localZ);
|
||||||
|
- double g = gradDot(this.p(n + sectionZ), localX - 1.0D, localY - 1.0D, localZ);
|
||||||
|
- double h = gradDot(this.p(k + sectionZ + 1), localX, localY, localZ - 1.0D);
|
||||||
|
- double o = gradDot(this.p(m + sectionZ + 1), localX - 1.0D, localY, localZ - 1.0D);
|
||||||
|
- double p = gradDot(this.p(l + sectionZ + 1), localX, localY - 1.0D, localZ - 1.0D);
|
||||||
|
- double q = gradDot(this.p(n + sectionZ + 1), localX - 1.0D, localY - 1.0D, localZ - 1.0D);
|
||||||
|
- double r = Mth.smoothstep(localX);
|
||||||
|
- double s = Mth.smoothstep(fadeLocalY);
|
||||||
|
- double t = Mth.smoothstep(localZ);
|
||||||
|
- return Mth.lerp3(r, s, t, d, e, f, g, h, o, p, q);
|
||||||
|
+ // DivineMC start - C2ME: opts math
|
||||||
|
+ /**
|
||||||
|
+ * @author ishland
|
||||||
|
+ * @reason inline math & small optimization: remove frequent type conversions and redundant ops
|
||||||
|
+ */
|
||||||
|
+ private double sampleAndLerp(int sectionX, int sectionY, int sectionZ, double localX, double localY, double localZ, double fadeLocalX) {
|
||||||
|
+ // TODO [VanillaCopy] but optimized
|
||||||
|
+ final int var0 = sectionX & 0xFF;
|
||||||
|
+ final int var1 = (sectionX + 1) & 0xFF;
|
||||||
|
+ final int var2 = this.p[var0] & 0xFF;
|
||||||
|
+ final int var3 = this.p[var1] & 0xFF;
|
||||||
|
+ final int var4 = (var2 + sectionY) & 0xFF;
|
||||||
|
+ final int var5 = (var3 + sectionY) & 0xFF;
|
||||||
|
+ final int var6 = (var2 + sectionY + 1) & 0xFF;
|
||||||
|
+ final int var7 = (var3 + sectionY + 1) & 0xFF;
|
||||||
|
+ final int var8 = this.p[var4] & 0xFF;
|
||||||
|
+ final int var9 = this.p[var5] & 0xFF;
|
||||||
|
+ final int var10 = this.p[var6] & 0xFF;
|
||||||
|
+ final int var11 = this.p[var7] & 0xFF;
|
||||||
|
+
|
||||||
|
+ final int var12 = (var8 + sectionZ) & 0xFF;
|
||||||
|
+ final int var13 = (var9 + sectionZ) & 0xFF;
|
||||||
|
+ final int var14 = (var10 + sectionZ) & 0xFF;
|
||||||
|
+ final int var15 = (var11 + sectionZ) & 0xFF;
|
||||||
|
+ final int var16 = (var8 + sectionZ + 1) & 0xFF;
|
||||||
|
+ final int var17 = (var9 + sectionZ + 1) & 0xFF;
|
||||||
|
+ final int var18 = (var10 + sectionZ + 1) & 0xFF;
|
||||||
|
+ final int var19 = (var11 + sectionZ + 1) & 0xFF;
|
||||||
|
+ final int var20 = (this.p[var12] & 15) << 2;
|
||||||
|
+ final int var21 = (this.p[var13] & 15) << 2;
|
||||||
|
+ final int var22 = (this.p[var14] & 15) << 2;
|
||||||
|
+ final int var23 = (this.p[var15] & 15) << 2;
|
||||||
|
+ final int var24 = (this.p[var16] & 15) << 2;
|
||||||
|
+ final int var25 = (this.p[var17] & 15) << 2;
|
||||||
|
+ final int var26 = (this.p[var18] & 15) << 2;
|
||||||
|
+ final int var27 = (this.p[var19] & 15) << 2;
|
||||||
|
+ final double var60 = localX - 1.0;
|
||||||
|
+ final double var61 = localY - 1.0;
|
||||||
|
+ final double var62 = localZ - 1.0;
|
||||||
|
+ final double var87 = FLAT_SIMPLEX_GRAD[(var20) | 0] * localX + FLAT_SIMPLEX_GRAD[(var20) | 1] * localY + FLAT_SIMPLEX_GRAD[(var20) | 2] * localZ;
|
||||||
|
+ final double var88 = FLAT_SIMPLEX_GRAD[(var21) | 0] * var60 + FLAT_SIMPLEX_GRAD[(var21) | 1] * localY + FLAT_SIMPLEX_GRAD[(var21) | 2] * localZ;
|
||||||
|
+ final double var89 = FLAT_SIMPLEX_GRAD[(var22) | 0] * localX + FLAT_SIMPLEX_GRAD[(var22) | 1] * var61 + FLAT_SIMPLEX_GRAD[(var22) | 2] * localZ;
|
||||||
|
+ final double var90 = FLAT_SIMPLEX_GRAD[(var23) | 0] * var60 + FLAT_SIMPLEX_GRAD[(var23) | 1] * var61 + FLAT_SIMPLEX_GRAD[(var23) | 2] * localZ;
|
||||||
|
+ final double var91 = FLAT_SIMPLEX_GRAD[(var24) | 0] * localX + FLAT_SIMPLEX_GRAD[(var24) | 1] * localY + FLAT_SIMPLEX_GRAD[(var24) | 2] * var62;
|
||||||
|
+ final double var92 = FLAT_SIMPLEX_GRAD[(var25) | 0] * var60 + FLAT_SIMPLEX_GRAD[(var25) | 1] * localY + FLAT_SIMPLEX_GRAD[(var25) | 2] * var62;
|
||||||
|
+ final double var93 = FLAT_SIMPLEX_GRAD[(var26) | 0] * localX + FLAT_SIMPLEX_GRAD[(var26) | 1] * var61 + FLAT_SIMPLEX_GRAD[(var26) | 2] * var62;
|
||||||
|
+ final double var94 = FLAT_SIMPLEX_GRAD[(var27) | 0] * var60 + FLAT_SIMPLEX_GRAD[(var27) | 1] * var61 + FLAT_SIMPLEX_GRAD[(var27) | 2] * var62;
|
||||||
|
+
|
||||||
|
+ final double var95 = localX * 6.0 - 15.0;
|
||||||
|
+ final double var96 = fadeLocalX * 6.0 - 15.0;
|
||||||
|
+ final double var97 = localZ * 6.0 - 15.0;
|
||||||
|
+ final double var98 = localX * var95 + 10.0;
|
||||||
|
+ final double var99 = fadeLocalX * var96 + 10.0;
|
||||||
|
+ final double var100 = localZ * var97 + 10.0;
|
||||||
|
+ final double var101 = localX * localX * localX * var98;
|
||||||
|
+ final double var102 = fadeLocalX * fadeLocalX * fadeLocalX * var99;
|
||||||
|
+ final double var103 = localZ * localZ * localZ * var100;
|
||||||
|
+
|
||||||
|
+ final double var113 = var87 + var101 * (var88 - var87);
|
||||||
|
+ final double var114 = var93 + var101 * (var94 - var93);
|
||||||
|
+ final double var115 = var91 + var101 * (var92 - var91);
|
||||||
|
+ final double var116 = var89 + var101 * (var90 - var89);
|
||||||
|
+ final double var117 = var114 - var115;
|
||||||
|
+ final double var118 = var102 * (var116 - var113);
|
||||||
|
+ final double var119 = var102 * var117;
|
||||||
|
+ final double var120 = var113 + var118;
|
||||||
|
+ final double var121 = var115 + var119;
|
||||||
|
+ return var120 + (var103 * (var121 - var120));
|
||||||
|
}
|
||||||
|
+ // DivineMC end
|
||||||
|
|
||||||
|
private double sampleWithDerivative(int sectionX, int sectionY, int sectionZ, double localX, double localY, double localZ, double[] ds) {
|
||||||
|
int i = this.p(sectionX);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/levelgen/synth/PerlinNoise.java b/src/main/java/net/minecraft/world/level/levelgen/synth/PerlinNoise.java
|
||||||
|
index 97ef7288ea935f3d17c5b7a9eba642143c786c2b..7991d75f45d850901b78b41bb04a697b97ecb4ee 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/levelgen/synth/PerlinNoise.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/levelgen/synth/PerlinNoise.java
|
||||||
|
@@ -26,6 +26,10 @@ public class PerlinNoise {
|
||||||
|
private final double lowestFreqValueFactor;
|
||||||
|
private final double lowestFreqInputFactor;
|
||||||
|
private final double maxValue;
|
||||||
|
+ // DivineMC start - C2ME: opts math
|
||||||
|
+ private int octaveSamplersCount;
|
||||||
|
+ private double[] amplitudesArray;
|
||||||
|
+ // DivineMC end
|
||||||
|
|
||||||
|
/** @deprecated */
|
||||||
|
@Deprecated
|
||||||
|
@@ -131,6 +135,10 @@ public class PerlinNoise {
|
||||||
|
this.lowestFreqInputFactor = Math.pow(2.0D, (double)(-j));
|
||||||
|
this.lowestFreqValueFactor = Math.pow(2.0D, (double)(i - 1)) / (Math.pow(2.0D, (double)i) - 1.0D);
|
||||||
|
this.maxValue = this.edgeValue(2.0D);
|
||||||
|
+ // DivineMC start - C2ME: opts math
|
||||||
|
+ this.octaveSamplersCount = this.noiseLevels.length;
|
||||||
|
+ this.amplitudesArray = this.amplitudes.toDoubleArray();
|
||||||
|
+ // DivineMC end
|
||||||
|
}
|
||||||
|
|
||||||
|
protected double maxValue() {
|
||||||
|
@@ -141,9 +149,33 @@ public class PerlinNoise {
|
||||||
|
random.consumeCount(262);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // DivineMC start - C2ME: opts math
|
||||||
|
+ /**
|
||||||
|
+ * @author ishland
|
||||||
|
+ * @reason optimize for common cases
|
||||||
|
+ */
|
||||||
|
public double getValue(double x, double y, double z) {
|
||||||
|
- return this.getValue(x, y, z, 0.0D, 0.0D, false);
|
||||||
|
+ double d = 0.0;
|
||||||
|
+ double e = this.lowestFreqInputFactor;
|
||||||
|
+ double f = this.lowestFreqValueFactor;
|
||||||
|
+
|
||||||
|
+ for (int i = 0; i < this.octaveSamplersCount; ++i) {
|
||||||
|
+ ImprovedNoise perlinNoiseSampler = this.noiseLevels[i];
|
||||||
|
+ if (perlinNoiseSampler != null) {
|
||||||
|
+ @SuppressWarnings("deprecation")
|
||||||
|
+ double g = perlinNoiseSampler.noise(
|
||||||
|
+ wrap(x * e), wrap(y * e), wrap(z * e), 0.0, 0.0
|
||||||
|
+ );
|
||||||
|
+ d += this.amplitudesArray[i] * g * f;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ e *= 2.0;
|
||||||
|
+ f /= 2.0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return d;
|
||||||
|
}
|
||||||
|
+ // DivineMC end
|
||||||
|
|
||||||
|
/** @deprecated */
|
||||||
|
@Deprecated
|
||||||
|
@@ -191,9 +223,15 @@ public class PerlinNoise {
|
||||||
|
return this.noiseLevels[this.noiseLevels.length - 1 - octave];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // DivineMC start - C2ME: opts math
|
||||||
|
+ /**
|
||||||
|
+ * @author ishland
|
||||||
|
+ * @reason remove frequent type conversion
|
||||||
|
+ */
|
||||||
|
public static double wrap(double value) {
|
||||||
|
- return value - (double)Mth.lfloor(value / 3.3554432E7D + 0.5D) * 3.3554432E7D;
|
||||||
|
+ return value - Mth.lfloor(value / 3.3554432E7 + 0.5) * 3.3554432E7;
|
||||||
|
}
|
||||||
|
+ // DivineMC end
|
||||||
|
|
||||||
|
protected int firstOctave() {
|
||||||
|
return this.firstOctave;
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sun, 14 Jan 2024 14:50:10 +0300
|
||||||
|
Subject: [PATCH] vmp: use linked map for entity trackers for faster iteration
|
||||||
|
|
||||||
|
Original code by RelativityMC, licensed under MIT
|
||||||
|
You can find the original code on https://github.com/RelativityMC/VMP-fabric (Yarn mappings)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
index 6cf36826cf8f5d4a78917d574786b9e94bc7b2d1..eb74495b66bb5c82fd7ae305354565dfd256e6db 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
@@ -89,6 +89,8 @@ import org.slf4j.Logger;
|
||||||
|
import org.bukkit.craftbukkit.generator.CustomChunkGenerator;
|
||||||
|
// CraftBukkit end
|
||||||
|
|
||||||
|
+import it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap; // DivineMC - vmp: use linked map for entity trackers for faster iteration
|
||||||
|
+
|
||||||
|
public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider {
|
||||||
|
|
||||||
|
private static final byte CHUNK_TYPE_REPLACEABLE = -1;
|
||||||
|
@@ -233,7 +235,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
|
// Paper - rewrite chunk system
|
||||||
|
this.tickingGenerated = new AtomicInteger();
|
||||||
|
this.playerMap = new PlayerMap();
|
||||||
|
- this.entityMap = new Int2ObjectOpenHashMap();
|
||||||
|
+ this.entityMap = new Int2ObjectLinkedOpenHashMap<>(); // DivineMC - vmp: use linked map for entity trackers for faster iteration
|
||||||
|
this.chunkTypeCache = new Long2ByteOpenHashMap();
|
||||||
|
this.chunkSaveCooldowns = new Long2LongOpenHashMap();
|
||||||
|
this.unloadQueue = Queues.newConcurrentLinkedQueue();
|
||||||
28
patches/server/0042-Improve-biome-temperature-cache.patch
Normal file
28
patches/server/0042-Improve-biome-temperature-cache.patch
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sun, 14 Jan 2024 22:54:49 +0300
|
||||||
|
Subject: [PATCH] Improve biome temperature cache
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/biome/Biome.java b/src/main/java/net/minecraft/world/level/biome/Biome.java
|
||||||
|
index efca73d4de33028cf9df944f36e51b7b50f7a4c5..0062435a0782f05964269452eac560b9426bbc5a 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/biome/Biome.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/biome/Biome.java
|
||||||
|
@@ -67,7 +67,7 @@ public final class Biome {
|
||||||
|
private final MobSpawnSettings mobSettings;
|
||||||
|
private final BiomeSpecialEffects specialEffects;
|
||||||
|
// Pufferfish start - use our cache
|
||||||
|
- private final ThreadLocal<gg.airplane.structs.Long2FloatAgingCache> temperatureCache = ThreadLocal.withInitial(() -> {
|
||||||
|
+ private static final ThreadLocal<gg.airplane.structs.Long2FloatAgingCache> temperatureCache = ThreadLocal.withInitial(() -> { // DivineMC - Improve biome temperature cache
|
||||||
|
return Util.make(() -> {
|
||||||
|
/*
|
||||||
|
Long2FloatLinkedOpenHashMap long2FloatLinkedOpenHashMap = new Long2FloatLinkedOpenHashMap(1024, 0.25F) {
|
||||||
|
@@ -125,7 +125,7 @@ public final class Biome {
|
||||||
|
public float getTemperature(BlockPos blockPos) {
|
||||||
|
long l = blockPos.asLong();
|
||||||
|
// Pufferfish start
|
||||||
|
- gg.airplane.structs.Long2FloatAgingCache cache = this.temperatureCache.get();
|
||||||
|
+ gg.airplane.structs.Long2FloatAgingCache cache = temperatureCache.get(); // DivineMC - Improve biome temperature cache
|
||||||
|
float f = cache.getValue(l);
|
||||||
|
if (!Float.isNaN(f)) {
|
||||||
|
return f;
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sun, 14 Jan 2024 22:58:43 +0300
|
||||||
|
Subject: [PATCH] Suppress errors from dirty attributes
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
|
index 6273a41b4c06058fae7b20b9afd0563fcc17bda9..f9d3ab7efb1ce51067a975d5d1f1defa59249f0b 100644
|
||||||
|
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
|
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
|
||||||
|
@@ -115,4 +115,9 @@ public class DivineWorldConfig {
|
||||||
|
}
|
||||||
|
linearCrashOnBrokenSymlink = getBoolean("region-format.linear.crash-on-broken-symlink", linearCrashOnBrokenSymlink);
|
||||||
|
}
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+
|
||||||
|
+ public boolean suppressErrorsFromDirtyAttributes = true;
|
||||||
|
+ private void suppressErrorsFromDirtyAttributes() {
|
||||||
|
+ suppressErrorsFromDirtyAttributes = getBoolean("suppress-errors-from-dirty-attributes", suppressErrorsFromDirtyAttributes);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
index 04b98e23eed926d8473cc2464e04a5b9f18f1140..68463f809aea61d818fc428f1c8b80682b05538b 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
|
@@ -386,7 +386,10 @@ public class ServerEntity {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.entity instanceof LivingEntity) {
|
||||||
|
- Set<AttributeInstance> set = ((LivingEntity) this.entity).getAttributes().getDirtyAttributes();
|
||||||
|
+ // DivineMC start - Suppress errors from dirty attributes
|
||||||
|
+ Set<AttributeInstance> attributes = ((LivingEntity) this.entity).getAttributes().getDirtyAttributes();
|
||||||
|
+ final Set<AttributeInstance> set = this.level.divinemcConfig.suppressErrorsFromDirtyAttributes ? Collections.synchronizedSet(attributes) : attributes;
|
||||||
|
+ // DivineMC end
|
||||||
|
|
||||||
|
if (!set.isEmpty()) {
|
||||||
|
// CraftBukkit start - Send scaled max health
|
||||||
|
@@ -397,7 +400,7 @@ public class ServerEntity {
|
||||||
|
this.broadcastAndSend(new ClientboundUpdateAttributesPacket(this.entity.getId(), set));
|
||||||
|
}
|
||||||
|
|
||||||
|
- set.clear();
|
||||||
|
+ attributes.clear(); // DivineMC
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
41
patches/server/0044-vmp-spawn_density_cap.patch
Normal file
41
patches/server/0044-vmp-spawn_density_cap.patch
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Tue, 16 Jan 2024 20:35:06 +0300
|
||||||
|
Subject: [PATCH] vmp: spawn_density_cap
|
||||||
|
|
||||||
|
Original code by RelativityMC, licensed under MIT
|
||||||
|
You can find the original code on https://github.com/RelativityMC/VMP-fabric (Yarn mappings)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/LocalMobCapCalculator.java b/src/main/java/net/minecraft/world/level/LocalMobCapCalculator.java
|
||||||
|
index 84c766e09898cfc07d6e07e80f4b9aa318050a62..66fe98e671a7e5fe3d3235d050020a92a8ddea8f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/LocalMobCapCalculator.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/LocalMobCapCalculator.java
|
||||||
|
@@ -3,8 +3,6 @@ package net.minecraft.world.level;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
|
||||||
|
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
||||||
|
-import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||||
|
-import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import net.minecraft.server.level.ChunkMap;
|
||||||
|
@@ -47,16 +45,14 @@ public class LocalMobCapCalculator {
|
||||||
|
}
|
||||||
|
|
||||||
|
static class MobCounts {
|
||||||
|
- private final Object2IntMap<MobCategory> counts = new Object2IntOpenHashMap<>(MobCategory.values().length);
|
||||||
|
+ private final int[] spawnGroupDensities = new int[MobCategory.values().length]; // DivineMC - vmp: spawn_density_cap
|
||||||
|
|
||||||
|
public void add(MobCategory spawnGroup) {
|
||||||
|
- this.counts.computeInt(spawnGroup, (group, density) -> {
|
||||||
|
- return density == null ? 1 : density + 1;
|
||||||
|
- });
|
||||||
|
+ this.spawnGroupDensities[spawnGroup.ordinal()]++; // DivineMC - vmp: spawn_density_cap
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canSpawn(MobCategory spawnGroup) {
|
||||||
|
- return this.counts.getOrDefault(spawnGroup, 0) < spawnGroup.getMaxInstancesPerChunk();
|
||||||
|
+ return this.spawnGroupDensities[spawnGroup.ordinal()] < spawnGroup.getMaxInstancesPerChunk(); // DivineMC - vmp: spawn_density_cap
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Fri, 26 Jan 2024 17:42:42 +0300
|
||||||
|
Subject: [PATCH] vmp: skip entity move if movement is zero
|
||||||
|
|
||||||
|
Original code by RelativityMC, licensed under MIT
|
||||||
|
You can find the original code on https://github.com/RelativityMC/VMP-fabric (Yarn mappings)
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
index 8c605b522f0d452238d9aad8adc875c98235d63d..ac609d0483ca2f6b6eaf96ee48991f48bd774725 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
@@ -316,6 +316,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
public float yRotO;
|
||||||
|
public float xRotO;
|
||||||
|
private AABB bb;
|
||||||
|
+ private boolean boundingBoxChanged = false; // DivineMC - vmp: skip entity move if movement is zero
|
||||||
|
public boolean onGround;
|
||||||
|
public boolean horizontalCollision;
|
||||||
|
public boolean verticalCollision;
|
||||||
|
@@ -1107,6 +1108,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
// Paper end - detailed watchdog information
|
||||||
|
|
||||||
|
public void move(MoverType movementType, Vec3 movement) {
|
||||||
|
+ // DivineMC start - vmp: skip entity move if movement is zero
|
||||||
|
+ if (!boundingBoxChanged && movement.equals(Vec3.ZERO)) {
|
||||||
|
+ boundingBoxChanged = false;
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ // DivineMC end
|
||||||
|
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
|
||||||
|
// Paper start - detailed watchdog information
|
||||||
|
io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main");
|
||||||
|
@@ -4146,6 +4153,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
}
|
||||||
|
|
||||||
|
public final void setBoundingBox(AABB boundingBox) {
|
||||||
|
+ if (!this.bb.equals(boundingBox)) boundingBoxChanged = true; // DivineMC - vmp: skip entity move if movement is zero
|
||||||
|
// CraftBukkit start - block invalid bounding boxes
|
||||||
|
double minX = boundingBox.minX,
|
||||||
|
minY = boundingBox.minY,
|
||||||
26
patches/server/0046-Fix-MC-172801.patch
Normal file
26
patches/server/0046-Fix-MC-172801.patch
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||||
|
Date: Sat, 27 Jan 2024 16:56:27 +0300
|
||||||
|
Subject: [PATCH] Fix MC-172801
|
||||||
|
|
||||||
|
Original post on Mojira: https://bugs.mojang.com/browse/MC-172801
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
index 70d1481c42322f7307e83b2c7bb10aec663227c9..0718835e59470963be907b7f613a162942097eb5 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
@@ -3074,7 +3074,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
|
}
|
||||||
|
|
||||||
|
protected float getFlyingSpeed() {
|
||||||
|
- return this.getControllingPassenger() instanceof net.minecraft.world.entity.player.Player ? this.getSpeed() * 0.1F : 0.02F;
|
||||||
|
+ // DivineMC start - Fix MC-172801
|
||||||
|
+ float flyingSpeed = 0.02F;
|
||||||
|
+ if (this.getAttributes().hasAttribute(Attributes.FLYING_SPEED)) {
|
||||||
|
+ flyingSpeed = (float) (this.getAttribute(Attributes.FLYING_SPEED).getValue() * 0.049999999254942D);
|
||||||
|
+ }
|
||||||
|
+ return this.getControllingPassenger() instanceof net.minecraft.world.entity.player.Player ? this.getSpeed() * 0.1F : flyingSpeed;
|
||||||
|
+ // DivineMC end
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getSpeed() {
|
||||||
Reference in New Issue
Block a user