mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Merge branch 'master' into breaking-changes/class-relocation
This commit is contained in:
commit
d64f2bba3f
2
.github/workflows/discord-webhook.yml
vendored
2
.github/workflows/discord-webhook.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
|||||||
uses: actions/checkout@v2.3.4
|
uses: actions/checkout@v2.3.4
|
||||||
|
|
||||||
- name: Set up Java JDK 11
|
- name: Set up Java JDK 11
|
||||||
uses: actions/setup-java@v2.1.0
|
uses: actions/setup-java@v2.3.0
|
||||||
with:
|
with:
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
|
3
.github/workflows/maven-compiler.yml
vendored
3
.github/workflows/maven-compiler.yml
vendored
@ -9,6 +9,7 @@ on:
|
|||||||
- 'pom.xml'
|
- 'pom.xml'
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
|
- '.github/workflows/**'
|
||||||
- 'src/**'
|
- 'src/**'
|
||||||
- 'pom.xml'
|
- 'pom.xml'
|
||||||
|
|
||||||
@ -23,7 +24,7 @@ jobs:
|
|||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Set up JDK 1.8
|
- name: Set up JDK 1.8
|
||||||
uses: actions/setup-java@v2.1.0
|
uses: actions/setup-java@v2.3.0
|
||||||
with:
|
with:
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
java-version: '8'
|
java-version: '8'
|
||||||
|
4
.github/workflows/pr-labels.yml
vendored
4
.github/workflows/pr-labels.yml
vendored
@ -27,7 +27,7 @@ jobs:
|
|||||||
api: '🔧 API'
|
api: '🔧 API'
|
||||||
compatibility: '🤝 Compatibility'
|
compatibility: '🤝 Compatibility'
|
||||||
|
|
||||||
- uses: thollander/actions-comment-pull-request@1.0.1
|
- uses: thollander/actions-comment-pull-request@1.0.2
|
||||||
name: Leave a comment about the applied label
|
name: Leave a comment about the applied label
|
||||||
if: ${{ steps.labeller.outputs.applied != 0 }}
|
if: ${{ steps.labeller.outputs.applied != 0 }}
|
||||||
with:
|
with:
|
||||||
@ -36,7 +36,7 @@ jobs:
|
|||||||
Your Pull Request was automatically labelled as: "${{ steps.labeller.outputs.applied }}"
|
Your Pull Request was automatically labelled as: "${{ steps.labeller.outputs.applied }}"
|
||||||
Thank you for contributing to this project! ❤️
|
Thank you for contributing to this project! ❤️
|
||||||
|
|
||||||
- uses: thollander/actions-comment-pull-request@1.0.1
|
- uses: thollander/actions-comment-pull-request@1.0.2
|
||||||
name: Leave a comment about our branch naming convention
|
name: Leave a comment about our branch naming convention
|
||||||
if: ${{ steps.labeller.outputs.applied == 0 }}
|
if: ${{ steps.labeller.outputs.applied == 0 }}
|
||||||
with:
|
with:
|
||||||
|
2
.github/workflows/release-candidates.yml
vendored
2
.github/workflows/release-candidates.yml
vendored
@ -24,7 +24,7 @@ jobs:
|
|||||||
ref: 'stable'
|
ref: 'stable'
|
||||||
|
|
||||||
- name: Merge latest commits into 'stable'
|
- name: Merge latest commits into 'stable'
|
||||||
uses: devmasx/merge-branch@v1.3.1
|
uses: devmasx/merge-branch@1.4.0
|
||||||
with:
|
with:
|
||||||
type: now
|
type: now
|
||||||
from_branch: 'master'
|
from_branch: 'master'
|
||||||
|
2
.github/workflows/sonarcloud.yml
vendored
2
.github/workflows/sonarcloud.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Set up JDK 11
|
- name: Set up JDK 11
|
||||||
uses: actions/setup-java@v2.1.0
|
uses: actions/setup-java@v2.3.0
|
||||||
with:
|
with:
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
|
2
.github/workflows/yaml-linter.yml
vendored
2
.github/workflows/yaml-linter.yml
vendored
@ -18,6 +18,6 @@ jobs:
|
|||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: YAML Linter
|
- name: YAML Linter
|
||||||
uses: ibiqlik/action-yamllint@v3.0.2
|
uses: ibiqlik/action-yamllint@v3.0.4
|
||||||
with:
|
with:
|
||||||
config_file: '.github/configs/yaml-linter.yml'
|
config_file: '.github/configs/yaml-linter.yml'
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
* Copper wire can no longer be placed down
|
* Copper wire can no longer be placed down
|
||||||
* Slimefun chains can no longer be placed down
|
* Slimefun chains can no longer be placed down
|
||||||
* (API) FlexCategories can now also appear in non-survival Slimefun guides
|
* (API) FlexCategories can now also appear in non-survival Slimefun guides
|
||||||
|
* Display items from Ancient Altars should no longer despawn so easily/fast
|
||||||
|
|
||||||
#### Fixes
|
#### Fixes
|
||||||
* Fixed #3164
|
* Fixed #3164
|
||||||
@ -47,6 +48,7 @@
|
|||||||
* Fixed #2677
|
* Fixed #2677
|
||||||
* Fixed Auto-Disenchanter exploit using mcMMO's "super ability" tools
|
* Fixed Auto-Disenchanter exploit using mcMMO's "super ability" tools
|
||||||
* Fixed #3190
|
* Fixed #3190
|
||||||
|
* Fixed #3203
|
||||||
|
|
||||||
## Release Candidate 26 (20 Jul 2021)
|
## Release Candidate 26 (20 Jul 2021)
|
||||||
https://thebusybiscuit.github.io/builds/TheBusyBiscuit/Slimefun4/stable/#26
|
https://thebusybiscuit.github.io/builds/TheBusyBiscuit/Slimefun4/stable/#26
|
||||||
|
8
pom.xml
8
pom.xml
@ -382,7 +382,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<artifactId>mockito-core</artifactId>
|
<artifactId>mockito-core</artifactId>
|
||||||
<version>3.11.2</version>
|
<version>3.12.4</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
@ -405,7 +405,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sk89q.worldedit</groupId>
|
<groupId>com.sk89q.worldedit</groupId>
|
||||||
<artifactId>worldedit-core</artifactId>
|
<artifactId>worldedit-core</artifactId>
|
||||||
<version>7.2.5</version>
|
<version>7.2.6</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
|
|
||||||
<exclusions>
|
<exclusions>
|
||||||
@ -419,7 +419,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sk89q.worldedit</groupId>
|
<groupId>com.sk89q.worldedit</groupId>
|
||||||
<artifactId>worldedit-bukkit</artifactId>
|
<artifactId>worldedit-bukkit</artifactId>
|
||||||
<version>7.2.5</version>
|
<version>7.2.6</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
|
|
||||||
<exclusions>
|
<exclusions>
|
||||||
@ -433,7 +433,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||||
<artifactId>mcMMO</artifactId>
|
<artifactId>mcMMO</artifactId>
|
||||||
<version>2.1.200</version>
|
<version>2.1.201</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
|
|
||||||
<exclusions>
|
<exclusions>
|
||||||
|
@ -636,8 +636,8 @@ public class SurvivalSlimefunGuide implements SlimefunGuideImplementation {
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
String lore = hasPermission(p, slimefunItem) ? "&fNeeds to be unlocked elsewhere" : "&fNo Permission";
|
String lore = hasPermission(p, slimefunItem) ? "&fNeeds to be unlocked in " + slimefunItem.getCategory().getDisplayName(p) : "&fNo Permission";
|
||||||
return slimefunItem.canUse(p, false) ? item : new CustomItemStack(Material.BARRIER, ItemUtils.getItemName(item), "&4&l" + Slimefun.getLocalization().getMessage(p, "guide.locked"), "", lore);
|
return slimefunItem.canUse(p, false) ? item : new CustomItem(Material.BARRIER, ItemUtils.getItemName(item), "&4&l" + SlimefunPlugin.getLocalization().getMessage(p, "guide.locked"), "", lore);
|
||||||
} else {
|
} else {
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,10 @@ public class FarmerAndroid extends ProgrammableAndroid {
|
|||||||
BlockData data = block.getBlockData();
|
BlockData data = block.getBlockData();
|
||||||
ItemStack drop = null;
|
ItemStack drop = null;
|
||||||
|
|
||||||
|
if (!block.getWorld().getWorldBorder().isInside(block.getLocation())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (data instanceof Ageable && ((Ageable) data).getAge() >= ((Ageable) data).getMaximumAge()) {
|
if (data instanceof Ageable && ((Ageable) data).getAge() >= ((Ageable) data).getMaximumAge()) {
|
||||||
drop = getDropFromCrop(blockType);
|
drop = getDropFromCrop(blockType);
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,6 @@ public class MinerAndroid extends ProgrammableAndroid {
|
|||||||
|
|
||||||
// We only want to break non-Slimefun blocks
|
// We only want to break non-Slimefun blocks
|
||||||
if (!BlockStorage.hasBlockInfo(block)) {
|
if (!BlockStorage.hasBlockInfo(block)) {
|
||||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
|
||||||
breakBlock(menu, drops, block);
|
breakBlock(menu, drops, block);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -113,7 +112,6 @@ public class MinerAndroid extends ProgrammableAndroid {
|
|||||||
|
|
||||||
// We only want to break non-Slimefun blocks
|
// We only want to break non-Slimefun blocks
|
||||||
if (!BlockStorage.hasBlockInfo(block)) {
|
if (!BlockStorage.hasBlockInfo(block)) {
|
||||||
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
|
||||||
breakBlock(menu, drops, block);
|
breakBlock(menu, drops, block);
|
||||||
move(b, face, block);
|
move(b, face, block);
|
||||||
}
|
}
|
||||||
@ -127,6 +125,13 @@ public class MinerAndroid extends ProgrammableAndroid {
|
|||||||
|
|
||||||
@ParametersAreNonnullByDefault
|
@ParametersAreNonnullByDefault
|
||||||
private void breakBlock(BlockMenu menu, Collection<ItemStack> drops, Block block) {
|
private void breakBlock(BlockMenu menu, Collection<ItemStack> drops, Block block) {
|
||||||
|
|
||||||
|
if (!block.getWorld().getWorldBorder().isInside(block.getLocation())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getType());
|
||||||
|
|
||||||
// Push our drops to the inventory
|
// Push our drops to the inventory
|
||||||
for (ItemStack drop : drops) {
|
for (ItemStack drop : drops) {
|
||||||
menu.pushItem(drop, getOutputSlots());
|
menu.pushItem(drop, getOutputSlots());
|
||||||
|
@ -890,6 +890,11 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
|
|||||||
@ParametersAreNonnullByDefault
|
@ParametersAreNonnullByDefault
|
||||||
protected void move(Block b, BlockFace face, Block block) {
|
protected void move(Block b, BlockFace face, Block block) {
|
||||||
if (block.getY() > 0 && block.getY() < block.getWorld().getMaxHeight() && block.isEmpty()) {
|
if (block.getY() > 0 && block.getY() < block.getWorld().getMaxHeight() && block.isEmpty()) {
|
||||||
|
|
||||||
|
if (!block.getWorld().getWorldBorder().isInside(block.getLocation())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
BlockData blockData = Material.PLAYER_HEAD.createBlockData(data -> {
|
BlockData blockData = Material.PLAYER_HEAD.createBlockData(data -> {
|
||||||
if (data instanceof Rotatable) {
|
if (data instanceof Rotatable) {
|
||||||
Rotatable rotatable = ((Rotatable) data);
|
Rotatable rotatable = ((Rotatable) data);
|
||||||
|
@ -46,6 +46,10 @@ public class WoodcutterAndroid extends ProgrammableAndroid {
|
|||||||
protected boolean chopTree(Block b, BlockMenu menu, BlockFace face) {
|
protected boolean chopTree(Block b, BlockMenu menu, BlockFace face) {
|
||||||
Block target = b.getRelative(face);
|
Block target = b.getRelative(face);
|
||||||
|
|
||||||
|
if (!target.getWorld().getWorldBorder().isInside(target.getLocation())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (Tag.LOGS.isTagged(target.getType())) {
|
if (Tag.LOGS.isTagged(target.getType())) {
|
||||||
List<Block> list = Vein.find(target, MAX_REACH, block -> Tag.LOGS.isTagged(block.getType()));
|
List<Block> list = Vein.find(target, MAX_REACH, block -> Tag.LOGS.isTagged(block.getType()));
|
||||||
|
|
||||||
|
@ -82,6 +82,12 @@ public final class SlimefunUtils {
|
|||||||
*/
|
*/
|
||||||
public static void markAsNoPickup(@Nonnull Item item, @Nonnull String context) {
|
public static void markAsNoPickup(@Nonnull Item item, @Nonnull String context) {
|
||||||
item.setMetadata(NO_PICKUP_METADATA, new FixedMetadataValue(Slimefun.instance(), context));
|
item.setMetadata(NO_PICKUP_METADATA, new FixedMetadataValue(Slimefun.instance(), context));
|
||||||
|
/*
|
||||||
|
* Max the pickup delay - This makes it so no Player can pick up items ever without need for an event.
|
||||||
|
* It is also an indication used by third-party plugins to know if it's a custom item.
|
||||||
|
* Fixes #3203
|
||||||
|
*/
|
||||||
|
item.setPickupDelay(Short.MAX_VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,9 +37,9 @@ slimefun:
|
|||||||
- 'Tuez ce monstre afin'
|
- 'Tuez ce monstre afin'
|
||||||
- 'd''obtenir cet objet'
|
- 'd''obtenir cet objet'
|
||||||
gold_pan:
|
gold_pan:
|
||||||
name: 'Poêle en or'
|
name: 'Tamis'
|
||||||
lore:
|
lore:
|
||||||
- 'Utilisez une casserole d''or pour'
|
- 'Utilisez un tamis pour'
|
||||||
- 'obtenir cet objet'
|
- 'obtenir cet objet'
|
||||||
compressor:
|
compressor:
|
||||||
name: 'Compresseur'
|
name: 'Compresseur'
|
||||||
|
@ -31,7 +31,7 @@ slimefun:
|
|||||||
elemental_staff: Sceptres élémentaires
|
elemental_staff: Sceptres élémentaires
|
||||||
grind_stone: Meule
|
grind_stone: Meule
|
||||||
cactus_armor: Combinaison en cactus
|
cactus_armor: Combinaison en cactus
|
||||||
gold_pan: Orpailleur
|
gold_pan: Tamis
|
||||||
magical_book_cover: Reliure de livre magique
|
magical_book_cover: Reliure de livre magique
|
||||||
slimefun_metals: Nouveaux métaux
|
slimefun_metals: Nouveaux métaux
|
||||||
ore_crusher: Doublage de minerai
|
ore_crusher: Doublage de minerai
|
||||||
@ -93,7 +93,7 @@ slimefun:
|
|||||||
composter: Composte
|
composter: Composte
|
||||||
farmer_shoes: Chaussure du fermier
|
farmer_shoes: Chaussure du fermier
|
||||||
explosive_tools: Outils explosifs
|
explosive_tools: Outils explosifs
|
||||||
automated_panning_machine: Orpailleur automatique
|
automated_panning_machine: Tamiseur automatique
|
||||||
boots_of_the_stomper: Bottes du Stomper
|
boots_of_the_stomper: Bottes du Stomper
|
||||||
pickaxe_of_the_seeker: Pioche du chercheur
|
pickaxe_of_the_seeker: Pioche du chercheur
|
||||||
backpacks: Sac-à-dos
|
backpacks: Sac-à-dos
|
||||||
@ -232,7 +232,7 @@ slimefun:
|
|||||||
lightning_rune: Rune de foudre
|
lightning_rune: Rune de foudre
|
||||||
totem_of_undying: Totem d'invulnérabilité
|
totem_of_undying: Totem d'invulnérabilité
|
||||||
charging_bench: Station de recharge
|
charging_bench: Station de recharge
|
||||||
nether_gold_pan: Orpailleur du Nether
|
nether_gold_pan: Tamis du Nether
|
||||||
electric_press: Presse électrique
|
electric_press: Presse électrique
|
||||||
magnesium_generator: Puissance du magnésium
|
magnesium_generator: Puissance du magnésium
|
||||||
kelp_cookie: Algues délicieuses
|
kelp_cookie: Algues délicieuses
|
||||||
|
Loading…
Reference in New Issue
Block a user