From 05a307ef8bf51f061323cf5bf32fbb798f9f29ae Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 30 Nov 2021 17:27:31 +0000 Subject: [PATCH 1/3] Merge docs for 'Carpet Mod 1.4.55 for Minecraft 1.18 and 1.17.1' --- docs/scarpet/Full.md | 142 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 127 insertions(+), 15 deletions(-) diff --git a/docs/scarpet/Full.md b/docs/scarpet/Full.md index 9256ca3d..17c6b3d3 100644 --- a/docs/scarpet/Full.md +++ b/docs/scarpet/Full.md @@ -2665,11 +2665,14 @@ poi(x,y,z,5) => [] // nothing around poi(x,y,z,5) => [['nether_portal',0,[7,8,9]],['nether_portal',0,[7,9,9]]] // two portal blocks in the range -### `biome()` `biome(name)` `biome(block)` `biome(block/name, feature)` +### `biome()` `biome(name)` `biome(block)` `biome(block/name, feature)`, `biome(noise_map)` Without arguments, returns the list of biomes in the world. -With block, or name, returns the name of the biome in that position, or throws `'unknown_biome'` if provided biome or block are not valid. +With block, or name, returns the name of the biome in that position, or throws `'unknown_biome'` if provided biome or block are not valid. + +(1.18+) if passed a map of `continentalness`, `depth`, `erosion`, `humidity`, `temperature`, `weirdness`, returns the biome that exists at those noise values. +Note: Have to pass all 6 of the mentioned noise types and only these noise types for it to evaluate a biome. With an optional feature, it returns value for the specified attribute for that biome. Available and queryable features include: * `'top_material'`: unlocalized block representing the top surface material @@ -2821,6 +2824,30 @@ Returns the map colour of a block at position. One of: `'brown_terracotta'`, `'green_terracotta'`, `'red_terracotta'`, `'black_terracotta'`, `'crimson_nylium'`, `'crimson_stem'`, `'crimson_hyphae'`, `'warped_nylium'`, `'warped_stem'`, `'warped_hyphae'`, `'warped_wart'` +### `sample_noise(pos, ...type?)` 1.18+ only + + Samples the multi noise value(s) on the given position. +If no type is passed, returns a map of `continentalness`, `depth`, `erosion`, `humidity`, `temperature`, `weirdness`. +Otherwise, returns the map of that specific noise. + +
+// without type
+sample_noise(pos) => {continentalness: 0.445300012827, erosion: 0.395399987698, temperature: 0.165399998426, ...}
+// passing type as multiple arguments
+sample_noise(pos, 'pillarRareness', 'aquiferBarrier') => {aquiferBarrier: -0.205013844481, pillarRareness: 1.04772473438}
+// passing types as a list with unpacking operator
+sample_noise(pos, ...['spaghetti3dFirst', 'spaghetti3dSecond']) => {spaghetti3dFirst: -0.186052125186, spaghetti3dSecond: 0.211626790923}
+
+ +Available types: + +`aquiferBarrier`, `aquiferFluidLevelFloodedness`, `aquiferFluidLevelSpread`, `aquiferLava`, `caveCheese`, +`caveEntrance`, `caveLayer`, `continentalness`, `depth`, `erosion`, `humidity`, `island`, `jagged`, `oreGap`, +`pillar`, `pillarRareness`, `pillarThickness`, `shiftX`, `shiftY`, `shiftZ`, `spaghetti2d`, `spaghetti2dElevation`, +`spaghetti2dModulator`, `spaghetti2dThickness`, `spaghetti3d`, `spaghetti3dFirst`, `spaghetti3dRarity`, +`spaghetti3dSecond`, `spaghetti3dThickness`, `spaghettiRoughness`, `spaghettiRoughnessModulator`, `temperature`, +`terrain`, `terrainFactor`, `terrainOffset`, `terrainPeaks`, `weirdness` + ### `loaded(pos)` @@ -3407,11 +3434,13 @@ List of entities riding the entity. Entity that `e` rides. -### `query(e, 'scoreboard_tags')`, `query(e, 'tags')`(deprecated) +### `query(e, 'scoreboard_tags')` and +### `query(e, 'tags')`(deprecated) List of entity's scoreboard tags. -### `query(e, 'has_scoreboard_tag',tag)`, `query(e, 'has_tag',tag)`(deprecated) +### `query(e, 'has_scoreboard_tag',tag)` and +### `query(e, 'has_tag',tag)`(deprecated) Boolean, true if the entity is marked with a `tag` scoreboad tag. @@ -3605,6 +3634,30 @@ query(p,'effect','resistance') => null Number indicating remaining entity health, or `null` if not applicable. +### `query(e, 'may_fly')` + +Returns a boolean indicating if the player can fly. + +### `query(e, 'flying')` + +Returns a boolean indicating if the player is flying. + +### `query(e, 'may_build')` + +Returns a boolean indicating if the player is allowed to place blocks. + +### `query(e, 'insta_build')` + +Returns a boolean indicating if the player can place blocks without consuming the item and if the player can shoot arrows without having them in the inventory. + +### `query(e, 'fly_speed')` + +Returns a number indicating the speed at which the player moves while flying. + +### `query(e, 'walk_speed')` + +Returns a number indicating the speed at which the player moves while walking. + ### `query(e, 'hunger')` ### `query(e, 'saturation')` ### `query(e, 'exhaustion')` @@ -3613,7 +3666,7 @@ Retrieves player hunger related information. For non-players, returns `null`. ### `query(e, 'absorption')` -Gets the absorption of the player (yellow hearts, e.g when having a golden apple.) +Gets the absorption of the player (yellow hearts, e.g. when having a golden apple.) ### `query(e,'xp')` ### `query(e,'xp_level')` @@ -3625,7 +3678,7 @@ Numbers related to player's xp. `xp` is the overall xp player has, `xp_level` is ### `query(e, 'air')` -Number indicating remaining entity health, or `null` if not applicable. +Number indicating remaining entity air, or `null` if not applicable. ### `query(e, 'language')` @@ -3765,10 +3818,7 @@ type objects via `get, put, has, delete`, so try to use API calls first for that ## Entity Modification -Like with entity querying, entity modifications happen through one function. Most position and movements modifications -don't work currently on players as their position is controlled by clients. - -Currently there is no ability to modify NBT directly, but you could always use `run('data modify entity ...')`. +Like with entity querying, entity modifications happen through one function. ### `modify(e, 'remove')` @@ -3898,6 +3948,34 @@ Applies status effect to the living entity. Takes several optional parameters, w `true` and `false`. If no duration is specified, or if it's null or 0, the effect is removed. If name is not specified, it clears all effects. +### `modify(e, 'may_fly', boolean)` + +Allows or denies the player the ability to fly. If the player is flying and the ability is removed, the player will stop flying. + +### `modify(e, 'flying', boolean)` + +Changes the flight status of the player (if it is flying or not). + +### `modify(e, 'may_build', boolean)` + +Allows or denies the player the ability to place blocks. + +### `modify(e, 'insta_build', boolean)` + +Allows or denies the player to place blocks without reducing the item count of the used stack and to shoot arrows without having them in the inventory. + +### `modify(e, 'fly_speed', float)` + +Modifies the value of the speed at which the player moves while flying. + +### `modify(e, 'walk_speed', float)` + +Modifies the value of the speed at which the player moves while walking. + +### `modify(e, 'selected_slot', int)` + +Changes player's selected slot. + ### `modify(e, 'home', null), modify(e, 'home', block, distance?), modify(e, 'home', x, y, z, distance?)` Sets AI to stay around the home position, within `distance` blocks from it. `distance` defaults to 16 blocks. @@ -5321,7 +5399,7 @@ Reloading of datapacks that define new dimensions is not implemented in vanilla. dimension information on server start. `create_datapack` is therefore a direct replacement of manually ploping of the specified file structure in a datapack file and calling `/datapack enable` on the new datapack with all its quirks and sideeffects (like no worldgen changes, reloading all other datapacks, etc.). To enable newly added custom dimensions, call much more -experimental `check_hidden_dimensions()` after adding a datapack if needed. +experimental `enable_hidden_dimensions()` after adding a datapack if needed. Synopsis:
@@ -5339,6 +5417,7 @@ script run create_datapack('foo',
 
 Custom dimension example:
 
+// 1.17
 script run create_datapack('funky_world',  {
     'data' -> { 'minecraft' -> { 'dimension' -> { 'custom_ow.json' -> { 
         'type' -> 'minecraft:the_end',
@@ -5353,7 +5432,36 @@ script run create_datapack('funky_world',  {
             'type' -> 'minecraft:noise'
     } } } } }
 });
-check_hidden_dimensions();  => ['funky_world']
+
+// 1.18
+script run a() -> create_datapack('funky_world',  {
+   'data' -> { 'minecraft' -> { 'dimension' -> { 'custom_ow.json' -> { 
+      'type' -> 'minecraft:overworld',
+         'generator' -> {
+            'biome_source' -> {
+               'biomes' -> [
+                  {
+                     'parameters' -> {                        
+                        'erosion' -> [-1.0,1.0], 
+                        'depth' -> 0.0, 
+                        'weirdness' -> [-1.0,1.0],
+                        'offset' -> 0.0,
+                        'temperature' -> [-1.0,1.0],
+                        'humidity' -> [-1.0,1.0],
+                        'continentalness' -> [ -1.2,-1.05]
+                     },
+                     'biome' -> 'minecraft:mushroom_fields'
+                  }
+               ],
+               'type' -> 'minecraft:multi_noise'
+            },
+            'seed' -> 0,
+            'settings' -> 'minecraft:overworld',
+            'type' -> 'minecraft:noise'
+         }
+     } } } }
+});
+enable_hidden_dimensions();  => ['funky_world']
 
Loot table example: @@ -5491,7 +5599,7 @@ Throws `unknown_dimension` if provided dimension can't be found. ### `view_distance()` -_**Deprecated**. Use `system_info('server_view_distance')` instead._ +_**Deprecated**. Use `system_info('game_view_distance')` instead._ Returns the view distance of the server. @@ -5551,9 +5659,13 @@ Available options in the scarpet app space: * `world_folder` - name of the direct folder in the saves that holds world files * `world_carpet_rules` - returns all Carpet rules in a map form (`rule`->`value`). Note that the values are always returned as strings, so you can't do boolean comparisons directly. Includes rules from extensions with their namespace (`namespace:rule`->`value`). You can later listen to rule changes with the `on_carpet_rule_changes(rule, newValue)` event. * `world_gamerules` - returns all gamerules in a map form (`rule`->`value`). Like carpet rules, values are returned as strings, so you can use appropriate value conversions using `bool()` or `number()` to convert them to other values. Gamerules are read-only to discourage app programmers to mess up with the settings intentionally applied by server admins. Isn't that just super annoying when a datapack messes up with your gamerule settings? It is still possible to change them though using `run('gamerule ...`. - * `world_spawn_point` - world spawn point + * `world_spawn_point` - world spawn point in the overworld dimension * `world_time` - Returns dimension-specific tick counter. - + * `world_top` - Returns current dimensions' topmost Y value where one can place blocks. + * `world_bottom` - Returns current dimensions' bottommost Y value where one can place blocks. + * `world_center` - Returns coordinates of the center of the world with respect of the world border + * `world_size` - Returns size of the world where at this distance from `world_center` world border appears. + * Relevant gameplay related properties * `game_difficulty` - current difficulty of the game: `'peaceful'`, `'easy'`, `'normal'`, or `'hard'` * `game_hardcore` - boolean whether the game is in hardcore mode From 3ff2b2efbc83aa3cfd80f3ba651970811dcd5dde Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 30 Nov 2021 18:41:17 +0100 Subject: [PATCH 2/3] fix snafu --- src/main/java/carpet/CarpetSettings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index 9e0f8c31..6ef95d9b 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -129,7 +129,7 @@ public class CarpetSettings private static class CarpetPermissionLevel extends Validator { @Override public String validate(ServerCommandSource source, ParsedRule currentRule, String newValue, String string) { - if (source.hasPermissionLevel(4)) + if (source == null || source.hasPermissionLevel(4)) return newValue; return null; } From d1bcb6c5dc856b85bec0e7ae0d443a49bcc937fb Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 30 Nov 2021 18:42:05 +0100 Subject: [PATCH 3/3] 1.4.56 --- gradle.properties | 2 +- src/main/java/carpet/CarpetSettings.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 29cbbe57..79e833a9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.jvmargs=-Xmx1G fabric_version=0.40.1+1.17 # Mod Properties - mod_version = 1.4.55 + mod_version = 1.4.56 maven_group = carpet archives_base_name = fabric-carpet diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index 6ef95d9b..4956cb2c 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -43,7 +43,7 @@ import static carpet.settings.RuleCategory.CLIENT; @SuppressWarnings("CanBeFinal") public class CarpetSettings { - public static final String carpetVersion = "1.4.55+v211130"; + public static final String carpetVersion = "1.4.56+v211130"; public static final Logger LOG = LogManager.getLogger("carpet"); public static ThreadLocal skipGenerationChecks = ThreadLocal.withInitial(() -> false); public static ThreadLocal impendingFillSkipUpdates = ThreadLocal.withInitial(() -> false);