Skip to content

Commit 895d0dd

Browse files
committed
Merge branch 'main' into 3-add-togglemsg-command
2 parents 65866e5 + bef1cb4 commit 895d0dd

File tree

7 files changed

+98
-5
lines changed

7 files changed

+98
-5
lines changed

.github/workflows/docs.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: JavaDocs
2+
3+
on:
4+
push:
5+
branches: [ main]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: "pages"
15+
cancel-in-progress: false
16+
17+
jobs:
18+
build:
19+
name: Build JavaDocs and deploy to GitHub Pages
20+
runs-on: ubuntu-latest
21+
environment:
22+
name: github-pages
23+
url: ${{steps.deployment.outputs.page_url}}
24+
steps:
25+
- uses: actions/checkout@v3
26+
- name: Set up JDK 17
27+
uses: actions/setup-java@v3
28+
with:
29+
java-version: '17'
30+
distribution: 'temurin'
31+
cache: maven
32+
- name: Generate Javadoc
33+
run: mvn -B javadoc:javadoc --file pom.xml
34+
- name: Setup Pages
35+
uses: actions/configure-pages@v4
36+
- name: Upload artifact
37+
uses: actions/upload-pages-artifact@v3
38+
with:
39+
path: target/site/apidocs
40+
- name: Deploy to GitHub Pages
41+
id: deployment
42+
uses: actions/deploy-pages@v4

pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@
4343
</execution>
4444
</executions>
4545
</plugin>
46+
<plugin>
47+
<groupId>org.apache.maven.plugins</groupId>
48+
<artifactId>maven-javadoc-plugin</artifactId>
49+
<version>3.6.3</version>
50+
<configuration>
51+
<links>
52+
<link>https://jd.papermc.io/paper/1.20/</link>
53+
<link>https://jd.advntr.dev/api/4.15.0/</link>
54+
</links>
55+
</configuration>
56+
</plugin>
4657
</plugins>
4758
<resources>
4859
<resource>

src/main/java/pro/cloudnode/smp/cloudnodemsg/CloudnodeMSG.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import pro.cloudnode.smp.cloudnodemsg.command.MessageCommand;
1010
import pro.cloudnode.smp.cloudnodemsg.command.ReplyCommand;
1111
import pro.cloudnode.smp.cloudnodemsg.command.UnIgnoreCommand;
12+
import pro.cloudnode.smp.cloudnodemsg.listener.AsyncChatListener;
1213
import pro.cloudnode.smp.cloudnodemsg.command.ToggleMessageCommand;
1314

1415
import java.util.Objects;
@@ -33,6 +34,8 @@ public void onEnable() {
3334
Objects.requireNonNull(getCommand("reply")).setExecutor(new ReplyCommand());Objects.requireNonNull(getCommand("ignore")).setExecutor(new IgnoreCommand());
3435
Objects.requireNonNull(getCommand("unignore")).setExecutor(new UnIgnoreCommand());
3536
Objects.requireNonNull(getCommand("togglemsg")).setExecutor(new ToggleMessageCommand());
37+
38+
getServer().getPluginManager().registerEvents(new AsyncChatListener(), this);
3639
}
3740

3841
@Override

src/main/java/pro/cloudnode/smp/cloudnodemsg/Permission.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ public final class Permission {
2626
/**
2727
* Player's messages are immune to ignoring
2828
*/
29-
public final static @NotNull String IGNORE_IMMUNE = "cloudnodemsg.ignore.bypass";
30-
29+
public final static @NotNull String IGNORE_BYPASS = "cloudnodemsg.ignore.bypass";
30+
3131
/**
3232
* Allows using the /togglemsg command
3333
*/

src/main/java/pro/cloudnode/smp/cloudnodemsg/command/IgnoreCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ public boolean run(final @NotNull CommandSender sender, final @NotNull String la
3232
}
3333

3434
public static boolean ignore(final @NotNull Player player, final @NotNull OfflinePlayer target) {
35-
if (target.isOnline() && Objects.requireNonNull(target.getPlayer()).hasPermission(Permission.IGNORE_IMMUNE)) return new CannotIgnoreError(Optional.ofNullable(target.getName()).orElse("Unknown Player")).send(player);
36-
if (!target.hasPlayedBefore()) return new NeverJoinedError(Optional.ofNullable(target.getName()).orElse("Unknown Player")).send(player);
35+
if (target.isOnline() && Objects.requireNonNull(target.getPlayer()).hasPermission(Permission.IGNORE_BYPASS)) return new CannotIgnoreError(Optional.ofNullable(target.getName()).orElse("Unknown Player")).send(player);
36+
if (!target.isOnline() && !target.hasPlayedBefore()) return new NeverJoinedError(Optional.ofNullable(target.getName()).orElse("Unknown Player")).send(player);
3737
Message.ignore(player, target);
3838
return sendMessage(player, CloudnodeMSG.getInstance().config().ignored(Optional.ofNullable(target.getName()).orElse("Unknown Player")));
3939
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package pro.cloudnode.smp.cloudnodemsg.listener;
2+
3+
import io.papermc.paper.event.player.AsyncChatEvent;
4+
import net.kyori.adventure.audience.Audience;
5+
import org.bukkit.OfflinePlayer;
6+
import org.bukkit.Server;
7+
import org.bukkit.entity.Player;
8+
import org.bukkit.event.EventHandler;
9+
import org.bukkit.event.EventPriority;
10+
import org.bukkit.event.Listener;
11+
import org.jetbrains.annotations.NotNull;
12+
import pro.cloudnode.smp.cloudnodemsg.CloudnodeMSG;
13+
import pro.cloudnode.smp.cloudnodemsg.Permission;
14+
import pro.cloudnode.smp.cloudnodemsg.message.Message;
15+
16+
import java.util.HashSet;
17+
import java.util.Iterator;
18+
import java.util.Set;
19+
20+
public final class AsyncChatListener implements Listener {
21+
@EventHandler (priority = EventPriority.LOWEST)
22+
public void onAsyncChat(final @NotNull AsyncChatEvent event) {
23+
final @NotNull Set<@NotNull Audience> audience = event.viewers();
24+
final @NotNull Iterator<@NotNull Audience> iterator = audience.iterator();
25+
final @NotNull Player sender = event.getPlayer();
26+
27+
while (iterator.hasNext()) {
28+
final @NotNull Audience a = iterator.next();
29+
if (a instanceof final @NotNull Player player) {
30+
final @NotNull Server server = CloudnodeMSG.getInstance().getServer();
31+
final @NotNull HashSet<@NotNull OfflinePlayer> ignored = Message.getIgnored(player).stream().map(server::getOfflinePlayer).collect(HashSet::new, HashSet::add, HashSet::addAll);
32+
33+
if (ignored.contains(sender) && !sender.hasPermission(Permission.IGNORE_BYPASS)) iterator.remove();
34+
}
35+
}
36+
}
37+
}

src/main/java/pro/cloudnode/smp/cloudnodemsg/message/Message.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public void send() throws InvalidPlayerError {
4040
if (
4141
(recipient.isOnline() && Message.isIgnored(Objects.requireNonNull(recipient.getPlayer()), sender))
4242
&&
43-
(sender.isOnline() && !Objects.requireNonNull(sender.getPlayer()).hasPermission(Permission.IGNORE_IMMUNE))
43+
(sender.isOnline() && !Objects.requireNonNull(sender.getPlayer()).hasPermission(Permission.IGNORE_BYPASS))
4444
) return;
4545
sendMessage(recipient, CloudnodeMSG.getInstance().config()
4646
.incoming(senderUsername, recipientUsername, message));

0 commit comments

Comments
 (0)