Skip to content

Commit

Permalink
removed NametagInRange and TabnameInRange in favor of ConditionalName…
Browse files Browse the repository at this point in the history
…tags & ConditionalAppearance
  • Loading branch information
Tanguygab committed Feb 8, 2024
1 parent c19e30b commit 1c93c9a
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 176 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,16 +101,12 @@ private void loadFeatures() {
if (config.getBoolean("titles.enabled",false)) registerFeature(new TitleManager());
if (chatConfig.getBoolean("enabled",false)) registerFeature(new Chat(chatConfig));
if (config.getBoolean("conditional-nametags.enabled",false) && tab.getNameTagManager() != null)
registerFeature(new ConditionalNametags(config.getBoolean("conditional-nametags.show-by-default",true),tab.getNameTagManager()));
if (config.getBoolean("conditional-appearance.enabled",false))
registerFeature(new ConditionalNametags(
config.getBoolean("conditional-nametags.show-by-default",true),
config.getBoolean("conditional-nametags.relational",false)));
if (!platform.isProxy() && config.getBoolean("conditional-appearance.enabled",false))
registerFeature(new ConditionalAppearance(plugin,config.getBoolean("conditional-appearance.show-by-default",true)));
if (tab.getNameTagManager() != null) tab.getCommand().registerSubCommand(new NametagCmd(tab.getNameTagManager()));

if (platform.isProxy()) return;
int nametagInRange = config.getInt("nametag-in-range", 0);
if (!features.contains("Conditional Nametags") && nametagInRange != 0 && tab.getNameTagManager() != null) registerFeature(new NametagInRange(nametagInRange,tab.getNameTagManager()));
int tablistInRange = config.getInt("tabname-in-range", 0);
if (!features.contains("Conditional Appearance") && tablistInRange != 0) registerFeature(new TabnameInRange(plugin,tablistInRange));
}

private void loadPlaceholders() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package io.github.tanguygab.tabadditions.shared.features;

import io.github.tanguygab.tabadditions.shared.features.advancedconditions.AdvancedConditions;
import lombok.Getter;
import me.neznamy.tab.shared.Property;
import me.neznamy.tab.shared.TAB;
import me.neznamy.tab.shared.features.types.*;
import me.neznamy.tab.shared.placeholders.conditions.Condition;
import me.neznamy.tab.shared.platform.TabPlayer;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
Expand All @@ -24,32 +24,25 @@ public ConditionalAppearance(Object plugin, boolean def) {
tab = TAB.getInstance();
this.plugin = (Plugin) plugin;
this.def = def;
for (TabPlayer p : tab.getOnlinePlayers()) {
p.loadPropertyFromConfig(this,"appearance-condition");
refresh(p,true);
}
for (TabPlayer p : tab.getOnlinePlayers()) onJoin(p);
}

@Override
public void onJoin(TabPlayer p) {
p.loadPropertyFromConfig(this,"appearance-condition");
for (Player all : Bukkit.getOnlinePlayers()) {
refresh(p(p),all);
refresh(all,p(p));
}
refresh(p,true);
}

@Override
public void refresh(@NotNull TabPlayer p, boolean force) {
for (Player all : Bukkit.getOnlinePlayers()) {
refresh(p(p),all);
}
for (TabPlayer all : tab.getOnlinePlayers())
refresh(p,all);
}

private void refresh(Player p, Player all) {
private void refresh(TabPlayer p, TabPlayer all) {
if (p == all) return;
if (getCondition(p)) sync(()->show(p,all));
else sync(()->hide(p,all));
if (getCondition(p,all)) sync(()->show(p(p),p(all)));
else sync(()->hide(p(p),p(all)));
}

private void sync(Runnable run) {
Expand All @@ -60,14 +53,13 @@ private Player p(TabPlayer p) {
return (Player) p.getPlayer();
}

public boolean getCondition(Player player) {
TabPlayer p = tab.getPlayer(player.getUniqueId());
if (p == null) return def;
Property prop = p.getProperty("appearance-condition");
public boolean getCondition(TabPlayer player, TabPlayer player2) {
if (player == null || player2 == null) return def;
Property prop = player.getProperty("appearance-condition");
if (prop == null) return def;
String cond = prop.getCurrentRawValue();
if (cond.isEmpty()) return def;
return Condition.getCondition(cond).isMet(p);
return def != AdvancedConditions.getCondition(cond).isMet(player,player2);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package io.github.tanguygab.tabadditions.shared.features;

import io.github.tanguygab.tabadditions.shared.features.advancedconditions.AdvancedConditions;
import lombok.Getter;
import me.neznamy.tab.api.nametag.NameTagManager;
import me.neznamy.tab.shared.Property;
import me.neznamy.tab.shared.TAB;
import me.neznamy.tab.shared.features.types.*;
import me.neznamy.tab.shared.platform.TabPlayer;
import me.neznamy.tab.shared.placeholders.conditions.Condition;
import org.jetbrains.annotations.NotNull;

public class ConditionalNametags extends TabFeature implements JoinListener, Refreshable, UnLoadable {
Expand All @@ -16,34 +16,43 @@ public class ConditionalNametags extends TabFeature implements JoinListener, Ref
private final TAB tab;
private final NameTagManager ntm;
private final boolean def;
private final boolean relational;

public ConditionalNametags(boolean def, NameTagManager ntm) {
public ConditionalNametags(boolean def, boolean relational) {
tab = TAB.getInstance();
this.ntm = ntm;
this.ntm = tab.getNameTagManager();
this.def = def;
for (TabPlayer p : tab.getOnlinePlayers()) {
p.loadPropertyFromConfig(this,"nametag-condition");
refresh(p,true);
}
this.relational = relational;
for (TabPlayer p : tab.getOnlinePlayers()) onJoin(p);
}

@Override
public void onJoin(TabPlayer p) {
p.loadPropertyFromConfig(this,"nametag-condition");
refresh(p,true);
}

@Override
public void refresh(@NotNull TabPlayer p, boolean force) {
if (getCondition(p)) ntm.showNameTag(p);
if (relational) {
for (TabPlayer all : tab.getOnlinePlayers()) {
if (p == all) continue;
if (getCondition(p,all)) ntm.showNameTag(p,all);
else ntm.hideNameTag(p,all);
}
return;
}
if (getCondition(p,p)) ntm.showNameTag(p);
else ntm.hideNameTag(p);
}

public boolean getCondition(TabPlayer p) {
Property prop = p.getProperty("nametag-condition");
public boolean getCondition(TabPlayer player, TabPlayer player2) {
if (player == null || player2 == null) return def;
Property prop = player.getProperty("nametag-condition");
if (prop == null) return def;
String cond = prop.getCurrentRawValue();
if (cond.isEmpty()) return def;
return Condition.getCondition(cond).isMet(p);
return def != AdvancedConditions.getCondition(cond).isMet(player,player2);
}

@Override
Expand Down

This file was deleted.

This file was deleted.

0 comments on commit 1c93c9a

Please sign in to comment.