Skip to the content.

Downloads

Latest Release Github commits (since latest release) Latest Pre-release Github commits (since latest pre-release)

Open Issues Closed Issues Open Pull requests Closed Pull requests

StaffChat

Simple and highly configurable staff chat.

Download

You can download the plugin from the Spigot resource page or via the GitHub releases.

License

This plugin is licensed with the MIT License, for more information see the LICENSE file.

Building

To build this yourself just clone the repository and run the shadowJar task with the Gradle Wrapper.

The plugin jar-file can be found inside the build/libs folder after building.

Windows

git clone git@github.com:oskar3123/StaffChat.git
cd StaffChat
gradlew.bat shadowJar

*nix (Linux, FreeBSD, macOS, …)

git clone git@github.com:oskar3123/StaffChat.git
cd StaffChat
./gradlew shadowJar

Event API (For developers)

Bukkit/Spigot

Because the event API in 1.14+ is now strict between sync and async events you should check whether this was called synchronously or asynchronously by using event.isAsynchronous().

public class StaffChatListener implements Listener {

  @EventHandler
  public void onStaffChat(StaffChatEvent event) {
    // Player player = event.getPlayer();
    // String format = event.getFormat();
    // String message = event.getMessage();
    // event.setFormat("&b{NAME} >> {MESSAGE}");
    // event.setMessage(filterMessage(message));
    // event.setCancelled(true);
  }

  private static String filterMessage(String message) {
    // ...
    return message;
  }
}

Register the listener in the onEnable method of your plugin.

public class YourPlugin extends JavaPlugin {

  @Override
  public void onEnable() {
    getServer().getPluginManager().registerEvents(new StaffChatListener(), this);
  }
}

BungeeCord

public class StaffChatListener implements Listener {

  @EventHandler
  public void onStaffChat(BungeeStaffChatEvent event) {
    // ProxiedPlayer player = event.getPlayer();
    // String format = event.getFormat();
    // String message = event.getMessage();
    // event.setFormat("&b{NAME} >> {MESSAGE}");
    // event.setMessage(filterMessage(message));
    // event.setCancelled(true);
  }

  private static String filterMessage(String message) {
    // ...
    return message;
  }
}

Register the listener in the onEnable method of your plugin.

public class YourPlugin extends Plugin {

  @Override
  public void onEnable() {
    getProxy().getPluginManager().registerListener(this, new StaffChatListener());
  }
}

Velocity

public class StaffChatListener {

  @Subscribe
  public void onStaffChat(VelocityStaffChatEvent event) {
    // Player player = event.getPlayer();
    // String format = event.getFormat();
    // String message = event.getMessage();
    // StaffChatResult result = StaffChatResult.denied();
    // StaffChatResult result = StaffChatResult.format("&b{NAME} >> {MESSAGE}");
    // StaffChatResult result = StaffChatResult.message(filterMessage(message));
    // StaffChatResult result = StaffChatResult.formatAndMessage("&b{NAME} >> {MESSAGE}", filterMessage(message));
    // event.setResult(result);
  }

  private static String filterMessage(String message) {
    // ...
    return message;
  }
}

Register the listener on the ProxyInitializeEvent in your plugin.

@Plugin
public class YourPlugin {

  private final ProxyServer server;

  @Inject
  public YourPlugin(ProxyServer server) {
    this.server = server;
  }

  @Subscribe
  public void onProxyInitialization(ProxyInitializeEvent event) {
    server.getEventManager().register(this, new StaffChatListener());
  }
}