Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
361d302b36
|
||
|
|
d6551b317f
|
||
|
|
5105e76dc5 | ||
|
|
82cfcb4862
|
||
|
|
671bb0d8b2
|
||
|
|
79fb7e84a5
|
||
|
|
bba628e3f2
|
||
|
|
b0951d7427
|
||
|
|
0e7a6e58e2
|
||
|
|
5850ff2009
|
||
|
|
f98a038e38 | ||
|
|
e927ca5f3c |
@@ -0,0 +1 @@
|
||||
repo_token: $COVERALLS_REPO_TOKEN
|
||||
@@ -9,3 +9,5 @@ deploy:
|
||||
skip_cleanup: true
|
||||
on:
|
||||
tags: true
|
||||
after_success:
|
||||
- mvn clean test jacoco:report coveralls:report
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
[](https://github.com/oskar3123/StaffChat/releases/latest)
|
||||
[](https://github.com/oskar3123/StaffChat/releases/latest)
|
||||
[](https://github.com/oskar3123/StaffChat/commits/master)
|
||||
[](https://coveralls.io/github/oskar3123/StaffChat?branch=master)
|
||||
|
||||
# [StaffChat](https://oskar3123.github.io/StaffChat)
|
||||
|
||||
@@ -9,3 +10,53 @@ Simple and highly configurable staffchat
|
||||
|
||||
## Download
|
||||
You can download the plugin from the [Spigot resource page](https://www.spigotmc.org/resources/37804/) or via the [GitHub releases](https://github.com/oskar3123/StaffChat/releases)
|
||||
|
||||
## Event API (For developers)
|
||||
|
||||
### Bukkit/Spigot
|
||||
|
||||
```java
|
||||
public class StaffChatListener implements Listener
|
||||
{
|
||||
|
||||
@EventHandler
|
||||
public void onStaffChat(StaffChatEvent event)
|
||||
{
|
||||
// String format = event.getFormat();
|
||||
// event.setFormat("&b{NAME} >> {MESSAGE}");
|
||||
// String message = event.getMessage();
|
||||
// Player player = event.getPlayer();
|
||||
// event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
Register the listener with
|
||||
```java
|
||||
getServer().getPluginManager().registerEvents(new StaffChatListener(), this);
|
||||
```
|
||||
in your plugin onEnable.
|
||||
|
||||
### BungeeCord
|
||||
|
||||
```java
|
||||
public class StaffChatListener implements Listener
|
||||
{
|
||||
|
||||
@EventHandler
|
||||
public void onStaffChat(BungeeStaffChatEvent event)
|
||||
{
|
||||
// String format = event.getFormat();
|
||||
// event.setFormat("&b{NAME} >> {MESSAGE}");
|
||||
// String message = event.getMessage();
|
||||
// Player player = event.getPlayer();
|
||||
// event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
Register the listener with
|
||||
```java
|
||||
getProxy().getPluginManager().registerListener(this, new StaffChatListener());
|
||||
```
|
||||
in your plugin onEnable.
|
||||
|
||||
@@ -7,7 +7,11 @@
|
||||
|
||||
<groupId>me.oskar3123</groupId>
|
||||
<artifactId>staffchat</artifactId>
|
||||
<version>1.1.3-SNAPSHOT</version>
|
||||
<version>1.1.4-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
@@ -24,17 +28,17 @@
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.12.2-R0.1-SNAPSHOT</version>
|
||||
<version>1.13-R0.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
<version>1.12.2-R0.1-SNAPSHOT</version>
|
||||
<version>1.13-R0.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.md-5</groupId>
|
||||
<artifactId>bungeecord-api</artifactId>
|
||||
<version>1.12-SNAPSHOT</version>
|
||||
<version>1.13-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
@@ -49,6 +53,24 @@
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.eluder.coveralls</groupId>
|
||||
<artifactId>coveralls-maven-plugin</artifactId>
|
||||
<version>4.3.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.jacoco</groupId>
|
||||
<artifactId>jacoco-maven-plugin</artifactId>
|
||||
<version>0.7.9</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare-agent</id>
|
||||
<goals>
|
||||
<goal>prepare-agent</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package me.oskar3123.staffchat.bungee.listener;
|
||||
|
||||
import me.oskar3123.staffchat.bungee.BungeeMain;
|
||||
import me.oskar3123.staffchat.bungee.event.BungeeStaffChatEvent;
|
||||
import me.oskar3123.staffchat.util.StringUtils;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
@@ -53,8 +54,8 @@ public class BungeeChatListener implements Listener
|
||||
}
|
||||
format = chatEvent.getFormat();
|
||||
|
||||
format = format.replaceAll("\\{NAME\\}", sanitize(player.getName()));
|
||||
format = format.replaceAll("\\{MESSAGE\\}", sanitize(message));
|
||||
format = format.replaceAll("\\{NAME\\}", StringUtils.sanitize(player.getName()));
|
||||
format = format.replaceAll("\\{MESSAGE\\}", StringUtils.sanitize(message));
|
||||
final BaseComponent[] messageComponents = txt(format);
|
||||
|
||||
plugin.getProxy().getPlayers().stream()
|
||||
@@ -75,11 +76,4 @@ public class BungeeChatListener implements Listener
|
||||
return TextComponent.fromLegacyText(clr(text));
|
||||
}
|
||||
|
||||
private String sanitize(String string)
|
||||
{
|
||||
string = string.replaceAll("\\\\", "\\\\\\\\");
|
||||
string = string.replaceAll("\\$", "\\\\\\$");
|
||||
return string;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package me.oskar3123.staffchat.spigot.listener;
|
||||
|
||||
import me.oskar3123.staffchat.spigot.Main;
|
||||
import me.oskar3123.staffchat.spigot.event.StaffChatEvent;
|
||||
import me.oskar3123.staffchat.util.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
@@ -45,8 +46,8 @@ public class ChatListener implements Listener
|
||||
}
|
||||
format = chatEvent.getFormat();
|
||||
|
||||
format = format.replaceAll("\\{NAME\\}", sanitize(event.getPlayer().getName()));
|
||||
format = format.replaceAll("\\{MESSAGE\\}", sanitize(message));
|
||||
format = format.replaceAll("\\{NAME\\}", StringUtils.sanitize(event.getPlayer().getName()));
|
||||
format = format.replaceAll("\\{MESSAGE\\}", StringUtils.sanitize(message));
|
||||
format = ChatColor.translateAlternateColorCodes('&', format);
|
||||
final String finalMessage = format;
|
||||
|
||||
@@ -58,11 +59,4 @@ public class ChatListener implements Listener
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
private String sanitize(String string)
|
||||
{
|
||||
string = string.replaceAll("\\\\", "\\\\\\\\");
|
||||
string = string.replaceAll("\\$", "\\\\\\$");
|
||||
return string;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package me.oskar3123.staffchat.util;
|
||||
|
||||
public class StringUtils
|
||||
{
|
||||
|
||||
public static String sanitize(String string)
|
||||
{
|
||||
string = string.replaceAll("\\\\", "\\\\\\\\");
|
||||
string = string.replaceAll("\\$", "\\\\\\$");
|
||||
return string;
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,308 @@
|
||||
package me.oskar3123.staffchat;
|
||||
|
||||
import net.md_5.bungee.api.*;
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import net.md_5.bungee.api.config.ServerInfo;
|
||||
import net.md_5.bungee.api.connection.PendingConnection;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import net.md_5.bungee.api.connection.Server;
|
||||
import net.md_5.bungee.api.event.ServerConnectEvent;
|
||||
import net.md_5.bungee.api.score.Scoreboard;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.Collection;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class TestProxiedPlayer implements ProxiedPlayer
|
||||
{
|
||||
|
||||
@Override
|
||||
public String getDisplayName()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisplayName(String s)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(ChatMessageType chatMessageType, BaseComponent... baseComponents)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(ChatMessageType chatMessageType, BaseComponent baseComponent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect(ServerInfo serverInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect(ServerInfo serverInfo, ServerConnectEvent.Reason reason)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect(ServerInfo serverInfo, Callback<Boolean> callback)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect(ServerInfo serverInfo, Callback<Boolean> callback, ServerConnectEvent.Reason reason)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect(ServerConnectRequest serverConnectRequest)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Server getServer()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPing()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendData(String s, byte[] bytes)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public PendingConnection getPendingConnection()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void chat(String s)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServerInfo getReconnectServer()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setReconnectServer(ServerInfo serverInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUUID()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getUniqueId()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Locale getLocale()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte getViewDistance()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChatMode getChatMode()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasChatColors()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SkinConfiguration getSkinParts()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MainHand getMainHand()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTabHeader(BaseComponent baseComponent, BaseComponent baseComponent1)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTabHeader(BaseComponent[] baseComponents, BaseComponent[] baseComponents1)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetTabHeader()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendTitle(Title title)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isForgeUser()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getModList()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Scoreboard getScoreboard()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(String s)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessages(String... strings)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(BaseComponent... baseComponents)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(BaseComponent baseComponent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getGroups()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addGroups(String... strings)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeGroups(String... strings)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String s)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPermission(String s, boolean b)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getPermissions()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InetSocketAddress getAddress()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnect(String s)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnect(BaseComponent... baseComponents)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnect(BaseComponent baseComponent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConnected()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Unsafe unsafe()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package me.oskar3123.staffchat.bungee.event;
|
||||
|
||||
import me.oskar3123.staffchat.TestProxiedPlayer;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class BungeeStaffChatEventTest
|
||||
{
|
||||
|
||||
private ProxiedPlayer player;
|
||||
private String format;
|
||||
private String message;
|
||||
private BungeeStaffChatEvent event;
|
||||
|
||||
@Before
|
||||
public void before()
|
||||
{
|
||||
this.player = new TestProxiedPlayer();
|
||||
this.format = "Format";
|
||||
this.message = "Message";
|
||||
this.event = new BungeeStaffChatEvent(player, format, message);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFormat()
|
||||
{
|
||||
assertEquals(format, event.getFormat());
|
||||
String newFormat = "New Format";
|
||||
event.setFormat(newFormat);
|
||||
assertEquals(newFormat, event.getFormat());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMessage()
|
||||
{
|
||||
assertEquals(message, event.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPlayer()
|
||||
{
|
||||
assertEquals(player, event.getPlayer());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCancelled()
|
||||
{
|
||||
event.setCancelled(true);
|
||||
assertTrue(event.isCancelled());
|
||||
event.setCancelled(false);
|
||||
assertFalse(event.isCancelled());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package me.oskar3123.staffchat.spigot.event;
|
||||
|
||||
import me.oskar3123.staffchat.TestPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class StaffChatEventTest
|
||||
{
|
||||
|
||||
private Player player;
|
||||
private String format;
|
||||
private String message;
|
||||
private StaffChatEvent event;
|
||||
|
||||
@Before
|
||||
public void before()
|
||||
{
|
||||
this.player = new TestPlayer();
|
||||
this.format = "Format";
|
||||
this.message = "Message";
|
||||
this.event = new StaffChatEvent(player, format, message);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFormat()
|
||||
{
|
||||
assertEquals(format, event.getFormat());
|
||||
String newFormat = "New Format";
|
||||
event.setFormat(newFormat);
|
||||
assertEquals(newFormat, event.getFormat());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPlayer()
|
||||
{
|
||||
assertEquals(player, event.getPlayer());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMessage()
|
||||
{
|
||||
assertEquals(message, event.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCancelled()
|
||||
{
|
||||
event.setCancelled(true);
|
||||
assertTrue(event.isCancelled());
|
||||
event.setCancelled(false);
|
||||
assertFalse(event.isCancelled());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package me.oskar3123.staffchat.util;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class StringUtilsTest
|
||||
{
|
||||
|
||||
@Test
|
||||
public void sanitize()
|
||||
{
|
||||
assertEquals("message", "hejsan \\$ \\\\ xd", StringUtils.sanitize("hejsan $ \\ xd"));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user