Fixes POM, and moves things around

This commit is contained in:
2022-08-05 00:34:54 +02:00
parent e3ef78f8f8
commit bb0be8a3f0
613 changed files with 27424 additions and 26469 deletions

View File

@@ -0,0 +1,67 @@
package com.massivecraft.factions.comparator;
import com.massivecraft.factions.entity.Faction;
import com.massivecraft.massivecore.comparator.ComparatorAbstract;
import com.massivecraft.massivecore.comparator.ComparatorComparable;
import com.massivecraft.massivecore.util.IdUtil;
import org.bukkit.command.CommandSender;
import java.lang.ref.WeakReference;
public class ComparatorFactionList extends ComparatorAbstract<Faction> {
// -------------------------------------------- //
// FIELDS
// -------------------------------------------- //
private final WeakReference<CommandSender> watcher;
public CommandSender getWatcher() {
return this.watcher.get();
}
// -------------------------------------------- //
// INSTANCE & CONSTRUCT
// -------------------------------------------- //
public static ComparatorFactionList get(Object watcherObject) {
return new ComparatorFactionList(watcherObject);
}
public ComparatorFactionList(Object watcherObject) {
this.watcher = new WeakReference<>(IdUtil.getSender(watcherObject));
}
// -------------------------------------------- //
// OVERRIDE
// -------------------------------------------- //
@Override
public int compareInner(Faction f1, Faction f2) {
// None a.k.a. Wilderness
if (f1.isNone() && f2.isNone()) {
return 0;
}
if (f1.isNone()) {
return -1;
}
if (f2.isNone()) {
return 1;
}
// Players Online
int ret = f2.getMPlayersWhereOnlineTo(this.getWatcher()).size() - f1.getMPlayersWhereOnlineTo(this.getWatcher()).size();
if (ret != 0) {
return ret;
}
// Players Total
ret = f2.getMPlayers().size() - f1.getMPlayers().size();
if (ret != 0) {
return ret;
}
// Tie by Id
return ComparatorComparable.get().compare(f1.getId(), f2.getId());
}
}

View File

@@ -0,0 +1,48 @@
package com.massivecraft.factions.comparator;
import com.massivecraft.factions.entity.MPlayer;
import com.massivecraft.massivecore.Named;
import com.massivecraft.massivecore.comparator.ComparatorAbstract;
public class ComparatorMPlayerInactivity extends ComparatorAbstract<MPlayer> implements Named {
// -------------------------------------------- //
// INSTANCE & CONSTRUCT
// -------------------------------------------- //
private static ComparatorMPlayerInactivity i = new ComparatorMPlayerInactivity();
public static ComparatorMPlayerInactivity get() {
return i;
}
// -------------------------------------------- //
// OVERRIDE
// -------------------------------------------- //
@Override
public String getName() {
return "Time";
}
@Override
public int compareInner(MPlayer m1, MPlayer m2) {
// Online
boolean o1 = m1.isOnline();
boolean o2 = m2.isOnline();
if (o1 && o2) {
return 0;
} else if (o1) {
return -1;
} else if (o2) {
return +1;
}
// Inactivity Time
long r1 = m1.getLastActivityMillis();
long r2 = m2.getLastActivityMillis();
return (int) (r1 - r2);
}
}

View File

@@ -0,0 +1,39 @@
package com.massivecraft.factions.comparator;
import com.massivecraft.factions.entity.MPlayer;
import com.massivecraft.massivecore.Named;
import com.massivecraft.massivecore.comparator.ComparatorAbstract;
public class ComparatorMPlayerPower extends ComparatorAbstract<MPlayer> implements Named {
// -------------------------------------------- //
// INSTANCE & CONSTRUCT
// -------------------------------------------- //
private static ComparatorMPlayerPower i = new ComparatorMPlayerPower();
public static ComparatorMPlayerPower get() {
return i;
}
// -------------------------------------------- //
// OVERRIDE
// -------------------------------------------- //
@Override
public String getName() {
return "Power";
}
@Override
public int compareInner(MPlayer m1, MPlayer m2) {
// Power
int ret = m1.getPowerRounded() - m2.getPowerRounded();
if (ret != 0) {
return ret;
}
// MaxPower
return m1.getPowerMaxRounded() - m2.getPowerMaxRounded();
}
}

View File

@@ -0,0 +1,39 @@
package com.massivecraft.factions.comparator;
import com.massivecraft.factions.entity.MPlayer;
import com.massivecraft.factions.entity.Rank;
import com.massivecraft.massivecore.Named;
import com.massivecraft.massivecore.comparator.ComparatorAbstract;
public class ComparatorMPlayerRole extends ComparatorAbstract<MPlayer> implements Named {
// -------------------------------------------- //
// INSTANCE & CONSTRUCT
// -------------------------------------------- //
private static ComparatorMPlayerRole i = new ComparatorMPlayerRole();
public static ComparatorMPlayerRole get() {
return i;
}
// -------------------------------------------- //
// OVERRIDE
// -------------------------------------------- //
@Override
public String getName() {
return "Rank";
}
@Override
public int compareInner(MPlayer m1, MPlayer m2) {
// Rank
if (m1.getFaction() != m2.getFaction()) {
throw new IllegalArgumentException("Noncomparable players");
}
Rank r1 = m1.getRank();
Rank r2 = m2.getRank();
return r2.getPriority() - r1.getPriority();
}
}