Skip to content

Commit

Permalink
1.21 (#24)
Browse files Browse the repository at this point in the history
* Fix workflow indentations

* Vault reset working

* Squashed commit of the following:

commit ad57afd
Author: GroobleDierne <[email protected]>
Date:   Tue Dec 10 17:32:18 2024 +0100

    Test when disabling cache

commit dc1a04d
Author: GroobleDierne <[email protected]>
Date:   Tue Dec 10 17:22:11 2024 +0100

    Test

commit e9d2bb1
Author: GroobleDierne <[email protected]>
Date:   Tue Dec 10 17:11:02 2024 +0100

    Update gradle

commit 34e55d9
Author: GroobleDierne <[email protected]>
Date:   Tue Dec 10 16:48:52 2024 +0100

    Update gh actions

commit f660bce
Author: GroobleDierne <[email protected]>
Date:   Tue Dec 10 14:31:45 2024 +0100

    Update gradle version

commit 56b6c4d
Author: Grooble <[email protected]>
Date:   Tue Dec 10 14:28:16 2024 +0100

    Update ci-cd.yml

commit 9bed99e
Author: GroobleDierne <[email protected]>
Date:   Tue Dec 10 14:26:35 2024 +0100

    Fix yml syntax may be

commit 7d12c66
Merge: b2a9b35 8550650
Author: Grooble <[email protected]>
Date:   Tue Dec 10 14:19:26 2024 +0100

    Merge pull request #23 from LaBoulangerie/1.21

    1.21
  • Loading branch information
PainOchoco authored Dec 13, 2024
1 parent ad57afd commit d10bfc9
Show file tree
Hide file tree
Showing 5 changed files with 143 additions and 49 deletions.
35 changes: 17 additions & 18 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,27 @@ jobs:
- name: JDk 21 setup
uses: actions/setup-java@v1
with:
java-version: 1.21
# - uses: actions/cache@v4
# env:
# cache-name: cache-gradle
# with:
# path: |
# ~/.gradle/caches
# ~/.gradle/wrapper
# .gradle/caches
# key: ${{ runner.os }}-gradle-${{ env.cache-name }}-${{ hashFiles('*.gradle.kts', '**/gradle-wrapper.properties') }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
java-version: 1.21
- uses: actions/cache@v3
env:
cache-name: cache-gradle
with:
gradle-version: "8.11.1"
- name: Compile
run: ./gradlew assemble
path: |
~/.gradle/caches
~/.gradle/wrapper
.gradle/caches
key: ${{ runner.os }}-gradle-${{ env.cache-name }}-${{ hashFiles('*.gradle.kts', '**/gradle-wrapper.properties') }}
- name: Gradle Build Action
uses: gradle/[email protected]
with:
gradle-version: "7.4.1"
arguments: assemble
- name: Clean build outputs
run: rm build/libs/LaBoulangerieCore-*dev*.jar
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v1
with:
name: laboulangeriecore
path: build/libs/
name: laboulangeriecore
path: build/libs/
deploy:
runs-on: ubuntu-latest
needs: [build]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
import net.laboulangerie.laboulangeriecore.misc.MiscListener;
import net.laboulangerie.laboulangeriecore.misc.TradeOverflowListener;
import net.laboulangerie.laboulangeriecore.misc.TradesHook;
import net.laboulangerie.laboulangeriecore.misc.VaultsReset;
import net.laboulangerie.laboulangeriecore.speedpaths.SpeedPathListener;
import net.laboulangerie.laboulangeriecore.speedpaths.SpeedPathManager;
import net.laboulangerie.laboulangeriecore.tab.TabListener;
Expand Down Expand Up @@ -124,6 +125,8 @@ public void onEnable() {

EventsManager.innit();

VaultsReset.reset();

registerListeners();

getCommand("authenticate").setExecutor(new AuthenticateCommand());
Expand Down Expand Up @@ -152,36 +155,41 @@ public void onEnable() {
getCommand("librahost").setExecutor(new LinkCommands());

if (getServer().getPluginManager().getPlugin("BetonQuest") != null) {
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("towny_is_king", new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new KingCondition();
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("towny_is_mayor", new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new MayorCondition();
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("nation_houses_has_stocks", new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new HousesStockCondition();
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("towny_has_house", new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new HasHouseCondition();
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("towny_has_rank", new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new RankCondition(instruction.getPart(1), instruction.getPart(2));
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("towny_is_king",
new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new KingCondition();
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("towny_is_mayor",
new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new MayorCondition();
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("nation_houses_has_stocks",
new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new HousesStockCondition();
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("towny_has_house",
new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new HasHouseCondition();
}
}, null);
BetonQuest.getInstance().getQuestRegistries().getConditionTypes().register("towny_has_rank",
new PlayerConditionFactory() {
@Override
public PlayerCondition parsePlayer(Instruction instruction) throws InstructionParseException {
return new RankCondition(instruction.getPart(1), instruction.getPart(2));
}
}, null);
getLogger().info("Hooked in BetonQuest!");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import net.laboulangerie.laboulangeriecore.core.end.Dragon;
import net.laboulangerie.laboulangeriecore.core.event.EventsManager;
import net.laboulangerie.laboulangeriecore.eco.ConversionInv;
import net.laboulangerie.laboulangeriecore.misc.VaultsReset;

public class CoreCommand implements TabExecutor {
@Override
Expand Down Expand Up @@ -126,6 +127,11 @@ public boolean onCommand(CommandSender sender, Command cmd, String alias, String
sender.sendMessage("§aNickname reset successfully!");
return true;
}

if (args[0].equalsIgnoreCase("resetvaults")) {
VaultsReset.reset();
return true;
}
return false;
}

Expand All @@ -134,7 +140,8 @@ public boolean onCommand(CommandSender sender, Command cmd, String alias, String
@NotNull String alias, @NotNull String[] args) {
List<String> suggestions = Arrays.asList("");
if (args.length == 1)
suggestions = Arrays.asList("reload", "rl", "conversion", "nick", "unnick", "spawnDragon", "nametag");
suggestions = Arrays.asList("reload", "rl", "conversion", "nick", "unnick", "spawnDragon", "nametag",
"resetvaults");
if (args.length == 2 && (args[0].equalsIgnoreCase("nick") ||
args[0].equalsIgnoreCase("unnick") ||
args[0].equalsIgnoreCase("nametag")))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package net.laboulangerie.laboulangeriecore.misc;

import java.util.List;

import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.craftbukkit.CraftWorld;

import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import com.sk89q.worldguard.protection.regions.RegionContainer;

import net.laboulangerie.laboulangeriecore.LaBoulangerieCore;
import net.minecraft.core.BlockPos;
import net.minecraft.core.HolderLookup;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.level.block.entity.BlockEntity;

public class VaultsReset {

public static void reset() {
List<String> regionWorldPairs = LaBoulangerieCore.PLUGIN.getConfig().getStringList("vault-reset-regions");

RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();

for (String regionWorldPair : regionWorldPairs) {
String[] splitted = regionWorldPair.split(":");
String worldName = splitted[0];
String regionName = splitted[1];

World world = LaBoulangerieCore.PLUGIN.getServer().getWorld(worldName);
RegionManager regions = container.get(BukkitAdapter.adapt(world));
ProtectedRegion region = regions.getRegion(regionName);
// check if region is a cuboid
if (region instanceof ProtectedCuboidRegion) {
resetVault(region, world);
} else {
LaBoulangerieCore.PLUGIN.getLogger().warning("Region " + regionName + " in world " + worldName
+ " is not a cuboid region, skipping...");
}
}
}

private static void resetVault(ProtectedRegion region, World world) {
BlockVector3 min = region.getMinimumPoint();
BlockVector3 max = region.getMaximumPoint();

HolderLookup.Provider minecraftProvider = MinecraftServer.getServer().registryAccess();
CraftWorld craftWorld = (CraftWorld) world;
for (int x = min.x(); x <= max.x(); x++) {
for (int y = min.y(); y <= max.y(); y++) {
for (int z = min.z(); z <= max.z(); z++) {
if (world.getBlockAt(x, y, z).getType() == Material.VAULT) {
LaBoulangerieCore.PLUGIN.getLogger()
.info("Resetting rewarded players of vault at " + x + " " + y + " " + z + " in world "
+ world.getName());
BlockPos blockPos = new BlockPos(x, y, z);
BlockEntity blockEntity = craftWorld.getHandle().getBlockEntity(blockPos);

CompoundTag ct = blockEntity.saveWithFullMetadata(minecraftProvider);
CompoundTag serverData = ct.getCompound("server_data");
serverData.remove("rewarded_players");

blockEntity.loadWithComponents(ct, minecraftProvider);
blockEntity.setChanged();
}
}
}
}
}

}
3 changes: 3 additions & 0 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -179,3 +179,6 @@ speed-paths:
# that should be disabled
disabled-crafts:
- VEX_ARMOR_TRIM_SMITHING_TEMPLATE

vault-reset-regions:
- world:spawn_trial

0 comments on commit d10bfc9

Please sign in to comment.