Skip to content
This repository was archived by the owner on Jan 11, 2026. It is now read-only.

Commit 12876a2

Browse files
committed
Update : 1.1
Signed-off-by: rexbut <butbutdu45@gmail.com>
1 parent f2c9d50 commit 12876a2

9 files changed

Lines changed: 125 additions & 9 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ packaging=jar
44
description=EverAPI
55
url=http://www.evercraft.fr
66
organization=EverAPI
7-
buildVersion=1.0
7+
buildVersion=1.1
88
buildType=SNAPSHOT

src/main/java/fr/evercraft/everapi/EAListener.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,30 @@
1616
*/
1717
package fr.evercraft.everapi;
1818

19+
import java.util.Optional;
20+
1921
import org.spongepowered.api.event.Listener;
22+
import org.spongepowered.api.event.Order;
2023
import org.spongepowered.api.event.network.ClientConnectionEvent;
2124

25+
import fr.evercraft.everapi.server.player.EPlayer;
26+
2227
public class EAListener {
2328
private final EverAPI plugin;
2429

2530
public EAListener(final EverAPI plugin){
2631
this.plugin = plugin;
2732
}
2833

29-
@Listener
34+
@Listener(order=Order.FIRST)
3035
public void onPlayerJoin(final ClientConnectionEvent.Join event) {
31-
this.plugin.getEServer().getEPlayer(event.getTargetEntity());
36+
Optional<EPlayer> player = this.plugin.getEServer().getEPlayer(event.getTargetEntity());
37+
if(player.isPresent()) {
38+
this.plugin.getManagerService().getEScoreBoard().addPlayer(player.get());
39+
}
3240
}
3341

34-
@Listener
42+
@Listener(order=Order.POST)
3543
public void onPlayerDisconnect(final ClientConnectionEvent.Disconnect event) {
3644
this.plugin.getEServer().removeEPlayer(event.getTargetEntity());
3745
}

src/main/java/fr/evercraft/everapi/EverAPI.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
@Plugin(id = "fr.evercraft.everapi",
3333
name = "EverAPI",
34-
version = "1.0",
34+
version = "1.1",
3535
description = "EverAPI is a library",
3636
url = "http://wiki.evercraft.fr/",
3737
authors = {"rexbut","lesbleu"})

src/main/java/fr/evercraft/everapi/server/EServer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ public Optional<User> getUser(String identifier){
162162

163163
public Optional<User> getUser(UUID identifier){
164164
Preconditions.checkNotNull(identifier, "identifier");
165+
165166
if(this.plugin.getEverAPI().getManagerService().getUserStorage().isPresent()) {
166167
return this.plugin.getEverAPI().getManagerService().getUserStorage().get().get(identifier);
167168
} else {

src/main/java/fr/evercraft/everapi/server/player/EPlayer.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package fr.evercraft.everapi.server.player;
1818

19+
import java.util.Collection;
1920
import java.util.HashMap;
2021
import java.util.Map;
2122
import java.util.Optional;
@@ -439,4 +440,22 @@ public boolean removeObjective(DisplaySlot display, String identifier) {
439440
}
440441
return false;
441442
}
443+
444+
public Collection<EPlayer> getOnlinePlayers() {
445+
return this.plugin.getEServer().getOnlineEPlayers(this);
446+
}
447+
448+
public boolean addNameTag(Text teamRepresentation, Text prefix, Text suffix) {
449+
if(this.plugin.getManagerService().getScoreBoard().isPresent()) {
450+
return this.plugin.getManagerService().getScoreBoard().get().addNameTag(this.player, teamRepresentation, prefix, suffix);
451+
}
452+
return false;
453+
}
454+
455+
public boolean removeNameTag(Text teamRepresentation) {
456+
if(this.plugin.getManagerService().getScoreBoard().isPresent()) {
457+
return this.plugin.getManagerService().getScoreBoard().get().removeNameTag(this.player, teamRepresentation);
458+
}
459+
return false;
460+
}
442461
}

src/main/java/fr/evercraft/everapi/services/ManagerService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ public EPagination getEPagination() {
8787
return this.pagination;
8888
}
8989

90+
public EScoreBoardService getEScoreBoard() {
91+
return this.scoreboard;
92+
}
93+
9094

9195
/*
9296
* Accesseurs service EverCraft
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package fr.evercraft.everapi.services.essentials.event;
2+
3+
import java.util.UUID;
4+
5+
import org.spongepowered.api.event.Event;
6+
import org.spongepowered.api.event.cause.Cause;
7+
8+
import fr.evercraft.everapi.plugin.EPlugin;
9+
10+
public class VanishEvent implements Event {
11+
public static enum Action {
12+
ADD,
13+
REMOVE;
14+
}
15+
16+
private final EPlugin plugin;
17+
private final UUID uuid;
18+
private final Action action;
19+
20+
public VanishEvent(final EPlugin plugin, final UUID uuid, final Action action) {
21+
this.plugin = plugin;
22+
23+
this.uuid = uuid;
24+
this.action = action;
25+
}
26+
27+
public UUID getPlayer() {
28+
return this.uuid;
29+
}
30+
31+
public Action getAction() {
32+
return this.action;
33+
}
34+
35+
@Override
36+
public Cause getCause() {
37+
return Cause.source(this.plugin).build();
38+
}
39+
}
40+

src/main/java/fr/evercraft/everapi/servives/scoreboard/EScoreBoardService.java

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,16 @@
1919
import java.util.Optional;
2020

2121
import org.spongepowered.api.entity.living.player.Player;
22+
import org.spongepowered.api.scoreboard.Scoreboard;
23+
import org.spongepowered.api.scoreboard.Team;
24+
import org.spongepowered.api.scoreboard.Visibilities;
2225
import org.spongepowered.api.scoreboard.displayslot.DisplaySlot;
2326
import org.spongepowered.api.scoreboard.objective.Objective;
27+
import org.spongepowered.api.text.Text;
28+
import org.spongepowered.api.text.format.TextColors;
2429

2530
import fr.evercraft.everapi.EverAPI;
31+
import fr.evercraft.everapi.server.player.EPlayer;
2632
import fr.evercraft.everapi.services.priority.PriorityService;
2733
import fr.evercraft.everapi.servives.scoreboard.event.ScoreBoardEvent;
2834
import fr.evercraft.everapi.servives.scoreboard.event.ScoreBoardEvent.Action;
@@ -37,6 +43,35 @@ public EScoreBoardService(final EverAPI plugin){
3743
public void reload() {
3844
}
3945

46+
public boolean addPlayer(EPlayer player) {
47+
player.setScoreboard(Scoreboard.builder().build());
48+
return true;
49+
}
50+
51+
@Override
52+
public boolean addNameTag(Player player, Text teamRepresentation ,Text prefix, Text suffix) {
53+
Team team = Team.builder()
54+
.prefix(prefix)
55+
.suffix(suffix)
56+
.name(teamRepresentation.toPlain())
57+
.nameTagVisibility(Visibilities.ALL)
58+
.displayName(teamRepresentation)
59+
.color(TextColors.RED)
60+
.build();
61+
team.addMember(teamRepresentation);
62+
player.getScoreboard().registerTeam(team);
63+
return true;
64+
}
65+
66+
@Override
67+
public boolean removeNameTag(Player player, Text teamRepresentation) {
68+
Optional<Team> team = player.getScoreboard().getMemberTeam(teamRepresentation);
69+
if(team.isPresent()) {
70+
team.get().unregister();
71+
}
72+
return true;
73+
}
74+
4075
@Override
4176
public boolean addObjective(Player player, DisplaySlot display, Objective objective) {
4277
return addObjective(player, getPriority(display, objective), display, objective);
@@ -50,10 +85,14 @@ public boolean addObjective(Player player, int priority, DisplaySlot display, Ob
5085
player.getScoreboard().removeObjective(objective_player.get());
5186
this.plugin.getGame().getEventManager().post(new ScoreBoardEvent(this.plugin, player, objective_player.get(), display, Action.REPLACE));
5287
}
53-
player.getScoreboard().addObjective(objective);
54-
player.getScoreboard().updateDisplaySlot(objective, display);
55-
this.plugin.getGame().getEventManager().post(new ScoreBoardEvent(this.plugin, player, objective, display, Action.ADD));
56-
return true;
88+
if(!player.getScoreboard().getObjective(objective.getName()).isPresent()) {
89+
player.getScoreboard().addObjective(objective);
90+
player.getScoreboard().updateDisplaySlot(objective, display);
91+
this.plugin.getGame().getEventManager().post(new ScoreBoardEvent(this.plugin, player, objective, display, Action.ADD));
92+
return true;
93+
} else {
94+
this.plugin.getLogger().warn("Multi-Objective (player='" + player.getIdentifier() + "';objective='" + objective.getName() + "')");
95+
}
5796
}
5897
return false;
5998
}

src/main/java/fr/evercraft/everapi/servives/scoreboard/ScoreBoardService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.spongepowered.api.entity.living.player.Player;
44
import org.spongepowered.api.scoreboard.displayslot.DisplaySlot;
55
import org.spongepowered.api.scoreboard.objective.Objective;
6+
import org.spongepowered.api.text.Text;
67

78
public interface ScoreBoardService {
89

@@ -13,4 +14,8 @@ public interface ScoreBoardService {
1314
public boolean removeObjective(Player player, DisplaySlot display, Objective objective);
1415

1516
public boolean removeObjective(Player player, DisplaySlot display, String identifier);
17+
18+
public boolean addNameTag(Player player, Text teamRepresentation, Text prefix, Text suffix);
19+
20+
public boolean removeNameTag(Player player, Text teamRepresentation);
1621
}

0 commit comments

Comments
 (0)