Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ group = project.maven_group
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url = "https://repo.mikeprimm.com/" }
maven { url "https://maven.nucleoid.xyz/" }
}

loom {
Expand All @@ -27,6 +28,7 @@ dependencies {

modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modImplementation "me.lucko:fabric-permissions-api:${project.lucko_permissions_version}"
modImplementation include("eu.pb4:placeholder-api:${project.papi_version}")
include "me.lucko:fabric-permissions-api:${project.lucko_permissions_version}"
compileOnly "us.dynmap:DynmapCoreAPI:${project.dynmap_api_version}"
implementation(include("com.h2database:h2:${project.h2_version}"))
Expand Down
3 changes: 2 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ archives_base_name = factions
h2_version=1.4.200
fabric_version=0.55.2+1.19
lucko_permissions_version=0.1-SNAPSHOT
dynmap_api_version=3.4-beta-3
dynmap_api_version=3.4-beta-3
papi_version=2.0.0-beta.6+1.19
16 changes: 6 additions & 10 deletions src/main/java/io/icker/factions/FactionsMod.java
Original file line number Diff line number Diff line change
@@ -1,31 +1,26 @@
package io.icker.factions;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.tree.LiteralCommandNode;

import io.icker.factions.command.*;
import io.icker.factions.config.Config;
import io.icker.factions.core.ChatManager;
import io.icker.factions.core.FactionsManager;
import io.icker.factions.core.InteractionManager;
import io.icker.factions.core.ServerManager;
import io.icker.factions.core.SoundManager;
import io.icker.factions.core.WorldManager;
import io.icker.factions.core.*;
import io.icker.factions.util.Command;
import io.icker.factions.util.DynmapWrapper;
import io.icker.factions.util.Migrator;
import io.icker.factions.util.PlaceholdersWrapper;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.ServerCommandSource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class FactionsMod implements ModInitializer {
public static Logger LOGGER = LogManager.getLogger("Factions");
public static final String MODID = "factions";

public static Config CONFIG = Config.load();
public static DynmapWrapper dynmap;
Expand All @@ -35,6 +30,7 @@ public void onInitialize() {
LOGGER.info("Initialized Factions Mod for Minecraft v1.19");

dynmap = FabricLoader.getInstance().isModLoaded("dynmap") ? new DynmapWrapper() : null;
PlaceholdersWrapper.init();
Migrator.migrate();

ChatManager.register();
Expand Down
20 changes: 14 additions & 6 deletions src/main/java/io/icker/factions/api/persistents/Faction.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

@Name("Faction")
public class Faction {
private static final HashMap<UUID, Faction> STORE = Database.load(Faction.class, f -> f.getID());
private static final HashMap<UUID, Faction> STORE = Database.load(Faction.class, Faction::getID);

@Field("ID")
private UUID id;
Expand Down Expand Up @@ -43,10 +43,10 @@ public class Faction {
private SimpleInventory safe = new SimpleInventory(54);

@Field("Invites")
public ArrayList<UUID> invites = new ArrayList<UUID>();
public ArrayList<UUID> invites = new ArrayList<>();

@Field("Relationships")
private ArrayList<Relationship> relationships = new ArrayList<Relationship>();
private ArrayList<Relationship> relationships = new ArrayList<>();

public Faction(String name, String description, String motd, Formatting color, boolean open, int power) {
this.id = UUID.randomUUID();
Expand All @@ -58,8 +58,9 @@ public Faction(String name, String description, String motd, Formatting color, b
this.power = power;
}

public Faction() { ; }
public Faction() {}

@SuppressWarnings("unused")
public String getKey() {
return id.toString();
}
Expand All @@ -84,6 +85,7 @@ public static Collection<Faction> all() {
return STORE.values();
}

@SuppressWarnings("unused")
public static List<Faction> allBut(UUID id) {
return STORE.values()
.stream()
Expand Down Expand Up @@ -128,6 +130,7 @@ public SimpleInventory getSafe() {
return safe;
}

@SuppressWarnings("unused")
public void setSafe(SimpleInventory safe) {
this.safe = safe;
}
Expand Down Expand Up @@ -162,7 +165,7 @@ public void setOpen(boolean open) {
}

public int adjustPower(int adjustment) {
int maxPower = FactionsMod.CONFIG.POWER.BASE + (getUsers().size() * FactionsMod.CONFIG.POWER.MEMBER);
int maxPower = calculateMaxPower();
int newPower = Math.min(Math.max(0, power + adjustment), maxPower);
int oldPower = this.power;

Expand All @@ -184,7 +187,7 @@ public List<Claim> getClaims() {
public void removeAllClaims() {
Claim.getByFaction(id)
.stream()
.forEach(c -> c.remove());
.forEach(Claim::remove);
FactionEvents.REMOVE_ALL_CLAIMS.invoker().onRemoveAllClaims(this);
}

Expand Down Expand Up @@ -257,4 +260,9 @@ public void remove() {
public static void save() {
Database.save(Faction.class, STORE.values().stream().toList());
}

// TODO(samu): import per-player power patch
public int calculateMaxPower(){
return FactionsMod.CONFIG.POWER.BASE + (getUsers().size() * FactionsMod.CONFIG.POWER.MEMBER);
}
}
32 changes: 17 additions & 15 deletions src/main/java/io/icker/factions/api/persistents/User.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package io.icker.factions.api.persistents;

import io.icker.factions.api.events.FactionEvents;
import io.icker.factions.database.Database;
import io.icker.factions.database.Field;
import io.icker.factions.database.Name;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

import io.icker.factions.api.events.FactionEvents;
import io.icker.factions.database.Database;
import io.icker.factions.database.Field;
import io.icker.factions.database.Name;

@Name("User")
public class User {
private static final HashMap<UUID, User> STORE = Database.load(User.class, p -> p.getID());
private static final HashMap<UUID, User> STORE = Database.load(User.class, User::getID);

public enum ChatMode {
FOCUS,
Expand Down Expand Up @@ -63,8 +63,9 @@ public User(UUID id) {
this.id = id;
}

public User() { ; }
public User() {}

@SuppressWarnings("unused")
public String getKey() {
return id.toString();
}
Expand All @@ -78,9 +79,9 @@ public static User get(UUID id) {

public static List<User> getByFaction(UUID factionID) {
return STORE.values()
.stream()
.filter(m -> m.isInFaction() && m.factionID.equals(factionID))
.toList();
.stream()
.filter(m -> m.isInFaction() && m.factionID.equals(factionID))
.toList();
}

public static void add(User user) {
Expand All @@ -97,11 +98,11 @@ public boolean isInFaction() {

private String getEnumName(Enum<?> value) {
return Arrays
.stream(value.name().split("_"))
.map(word -> word.isEmpty() ? word :
Character.toTitleCase(word.charAt(0)) +
word.substring(1).toLowerCase())
.collect(Collectors.joining(" "));
.stream(value.name().split("_"))
.map(word -> word.isEmpty() ? word :
Character.toTitleCase(word.charAt(0)) +
word.substring(1).toLowerCase())
.collect(Collectors.joining(" "));
}

public String getRankName() {
Expand Down Expand Up @@ -144,4 +145,5 @@ public void leaveFaction() {
public static void save() {
Database.save(User.class, STORE.values().stream().toList());
}

}
Loading