12 Commits
Author SHA1 Message Date
oskar3123 361d302b36 merge 2018-07-30 13:07:01 +02:00
oskar3123 d6551b317f change pom to spigot 1.13 2018-07-30 13:03:08 +02:00
oskar3123andGitHub 5105e76dc5 Add coverage shield to readme 2018-05-16 14:07:27 +02:00
oskar3123 82cfcb4862 add more tests 2018-05-15 01:52:05 +02:00
oskar3123 671bb0d8b2 add sourceencoding to pom 2018-05-15 01:27:11 +02:00
oskar3123 79fb7e84a5 add jacoco test to travis yml 2018-05-15 01:22:19 +02:00
oskar3123 bba628e3f2 add JaCoCo maven plugin 2018-05-15 01:21:13 +02:00
oskar3123 b0951d7427 add sanitize junit test to test coveralls 2018-05-15 01:11:15 +02:00
oskar3123 0e7a6e58e2 test coveralls 2 2018-05-15 00:57:54 +02:00
oskar3123 5850ff2009 test coveralls 2018-05-15 00:53:29 +02:00
oskar3123andGitHub f98a038e38 Change documentation a bit 2018-05-01 04:06:17 +02:00
oskar3123andGitHub e927ca5f3c Add event documentation to the README 2018-05-01 04:05:27 +02:00
12 changed files with 2400 additions and 22 deletions
+1
View File
@@ -0,0 +1 @@
repo_token: $COVERALLS_REPO_TOKEN
+2
View File
@@ -9,3 +9,5 @@ deploy:
skip_cleanup: true skip_cleanup: true
on: on:
tags: true tags: true
after_success:
- mvn clean test jacoco:report coveralls:report
+51
View File
@@ -2,6 +2,7 @@
[![All Release](https://img.shields.io/github/downloads/oskar3123/StaffChat/total.svg?style=flat)](https://github.com/oskar3123/StaffChat/releases/latest) [![All Release](https://img.shields.io/github/downloads/oskar3123/StaffChat/total.svg?style=flat)](https://github.com/oskar3123/StaffChat/releases/latest)
[![Latest Release](https://img.shields.io/github/release/oskar3123/StaffChat.svg?style=flat)](https://github.com/oskar3123/StaffChat/releases/latest) [![Latest Release](https://img.shields.io/github/release/oskar3123/StaffChat.svg?style=flat)](https://github.com/oskar3123/StaffChat/releases/latest)
[![Github commits (since latest release)](https://img.shields.io/github/commits-since/oskar3123/StaffChat/latest.svg?style=flat)](https://github.com/oskar3123/StaffChat/commits/master) [![Github commits (since latest release)](https://img.shields.io/github/commits-since/oskar3123/StaffChat/latest.svg?style=flat)](https://github.com/oskar3123/StaffChat/commits/master)
[![Coverage Status](https://coveralls.io/repos/github/oskar3123/StaffChat/badge.svg?branch=master)](https://coveralls.io/github/oskar3123/StaffChat?branch=master)
# [StaffChat](https://oskar3123.github.io/StaffChat) # [StaffChat](https://oskar3123.github.io/StaffChat)
@@ -9,3 +10,53 @@ Simple and highly configurable staffchat
## Download ## 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) 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.
+26 -4
View File
@@ -7,7 +7,11 @@
<groupId>me.oskar3123</groupId> <groupId>me.oskar3123</groupId>
<artifactId>staffchat</artifactId> <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> <repositories>
<repository> <repository>
@@ -24,17 +28,17 @@
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId> <artifactId>spigot-api</artifactId>
<version>1.12.2-R0.1-SNAPSHOT</version> <version>1.13-R0.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.bukkit</groupId> <groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId> <artifactId>bukkit</artifactId>
<version>1.12.2-R0.1-SNAPSHOT</version> <version>1.13-R0.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.md-5</groupId> <groupId>net.md-5</groupId>
<artifactId>bungeecord-api</artifactId> <artifactId>bungeecord-api</artifactId>
<version>1.12-SNAPSHOT</version> <version>1.13-SNAPSHOT</version>
</dependency> </dependency>
</dependencies> </dependencies>
@@ -49,6 +53,24 @@
<target>1.8</target> <target>1.8</target>
</configuration> </configuration>
</plugin> </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> </plugins>
</build> </build>
@@ -2,6 +2,7 @@ package me.oskar3123.staffchat.bungee.listener;
import me.oskar3123.staffchat.bungee.BungeeMain; import me.oskar3123.staffchat.bungee.BungeeMain;
import me.oskar3123.staffchat.bungee.event.BungeeStaffChatEvent; 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.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;
@@ -53,8 +54,8 @@ public class BungeeChatListener implements Listener
} }
format = chatEvent.getFormat(); format = chatEvent.getFormat();
format = format.replaceAll("\\{NAME\\}", sanitize(player.getName())); format = format.replaceAll("\\{NAME\\}", StringUtils.sanitize(player.getName()));
format = format.replaceAll("\\{MESSAGE\\}", sanitize(message)); format = format.replaceAll("\\{MESSAGE\\}", StringUtils.sanitize(message));
final BaseComponent[] messageComponents = txt(format); final BaseComponent[] messageComponents = txt(format);
plugin.getProxy().getPlayers().stream() plugin.getProxy().getPlayers().stream()
@@ -75,11 +76,4 @@ public class BungeeChatListener implements Listener
return TextComponent.fromLegacyText(clr(text)); 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.Main;
import me.oskar3123.staffchat.spigot.event.StaffChatEvent; import me.oskar3123.staffchat.spigot.event.StaffChatEvent;
import me.oskar3123.staffchat.util.StringUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
@@ -45,8 +46,8 @@ public class ChatListener implements Listener
} }
format = chatEvent.getFormat(); format = chatEvent.getFormat();
format = format.replaceAll("\\{NAME\\}", sanitize(event.getPlayer().getName())); format = format.replaceAll("\\{NAME\\}", StringUtils.sanitize(event.getPlayer().getName()));
format = format.replaceAll("\\{MESSAGE\\}", sanitize(message)); format = format.replaceAll("\\{MESSAGE\\}", StringUtils.sanitize(message));
format = ChatColor.translateAlternateColorCodes('&', format); format = ChatColor.translateAlternateColorCodes('&', format);
final String finalMessage = format; final String finalMessage = format;
@@ -58,11 +59,4 @@ public class ChatListener implements Listener
event.setCancelled(true); 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"));
}
}