mirror of
https://github.com/RoinujNosde/SimpleClans.git
synced 2026-11-05 01:10:04 -05:00
Adds compatibility with mute plugins
This commit is contained in:
1 parent
95c5b11352
commit
1f0b251885
2 files changed
+46
-23
No files matched your search
@@ -4,7 +4,7 @@
|
||||
<groupId>net.sacredlabyrinth.phaed.simpleclans</groupId>
|
||||
<artifactId>SimpleClans</artifactId>
|
||||
<name>SimpleClans</name>
|
||||
<version>2.14.7</version>
|
||||
<version>2.15.0</version>
|
||||
<url>http://dev.bukkit.org/server-mods/simpleclans/</url>
|
||||
<build>
|
||||
<resources>
|
||||
@@ -103,10 +103,6 @@
|
||||
<id>bstats-repo</id>
|
||||
<url>https://repo.codemc.org/repository/maven-public</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>papermc</id>
|
||||
<url>https://papermc.io/repo/repository/maven-public/</url>
|
||||
@@ -119,6 +115,10 @@
|
||||
<id>sk89q-repo</id>
|
||||
<url>https://maven.enginehub.org/repo/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@@ -238,10 +238,13 @@
|
||||
</dependencies>
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>bintray-roinujnosde-bukkit-plugins</id>
|
||||
<name>roinujnosde-bukkit-plugins</name>
|
||||
<url>https://api.bintray.com/maven/roinujnosde/bukkit-plugins/SimpleClans/;publish=1</url>
|
||||
<id>codemc-releases</id>
|
||||
<url>https://repo.codemc.io/repository/maven-releases/</url>
|
||||
</repository>
|
||||
<snapshotRepository>
|
||||
<id>codemc-snapshots</id>
|
||||
<url>https://repo.codemc.io/repository/maven-snapshots/</url>
|
||||
</snapshotRepository>
|
||||
</distributionManagement>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
+35
-15
@@ -50,33 +50,45 @@ public class SCPlayerListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event) {
|
||||
if (event instanceof FakeAsyncPlayerChatEvent) {
|
||||
return;
|
||||
}
|
||||
Player player = event.getPlayer();
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player.getUniqueId());
|
||||
if (cp == null || settingsManager.isBlacklistedWorld(player.getLocation().getWorld())) {
|
||||
return;
|
||||
}
|
||||
|
||||
FakeAsyncPlayerChatEvent fakeEvent = new FakeAsyncPlayerChatEvent(event);
|
||||
Bukkit.getPluginManager().callEvent(fakeEvent);
|
||||
if (fakeEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
Channel channel = cp.getChannel();
|
||||
if (channel != NONE) {
|
||||
PermissionsManager pm = plugin.getPermissionsManager();
|
||||
if ((channel == Channel.ALLY && !pm.has(player, "simpleclans.member.ally")) ||
|
||||
(channel == CLAN && !pm.has(player, "simpleclans.member.chat"))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions", player));
|
||||
return;
|
||||
}
|
||||
switch (channel) {
|
||||
case CLAN:
|
||||
plugin.getClanManager().processClanChat(player, event.getMessage());
|
||||
break;
|
||||
case ALLY:
|
||||
plugin.getClanManager().processAllyChat(player, event.getMessage());
|
||||
}
|
||||
if (!handleClanChat(event.getMessage(), player, channel)) return;
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean handleClanChat(String message, Player player, Channel channel) {
|
||||
PermissionsManager pm = plugin.getPermissionsManager();
|
||||
if ((channel == Channel.ALLY && !pm.has(player, "simpleclans.member.ally")) ||
|
||||
(channel == CLAN && !pm.has(player, "simpleclans.member.chat"))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions", player));
|
||||
return false;
|
||||
}
|
||||
switch (channel) {
|
||||
case CLAN:
|
||||
plugin.getClanManager().processClanChat(player, message);
|
||||
break;
|
||||
case ALLY:
|
||||
plugin.getClanManager().processAllyChat(player, message);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void handleChatTags(AsyncPlayerChatEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
@@ -186,4 +198,12 @@ public class SCPlayerListener implements Listener {
|
||||
|
||||
plugin.getClanManager().updateLastSeen(event.getPlayer());
|
||||
}
|
||||
|
||||
private static class FakeAsyncPlayerChatEvent extends AsyncPlayerChatEvent {
|
||||
|
||||
public FakeAsyncPlayerChatEvent(AsyncPlayerChatEvent event) {
|
||||
super(event.isAsynchronous(), event.getPlayer(), event.getMessage(), event.getRecipients());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user