summaryrefslogtreecommitdiff
path: root/com/redstoner/bungee/joinmessages/JoinMessages.java
blob: 13e6c0d78687f246f0c395e9fd806102e0198794 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.redstoner.bungee.joinmessages;

import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.ServerConnectEvent;
import net.md_5.bungee.api.event.ServerDisconnectEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.event.EventHandler;
import net.md_5.bungee.event.EventPriority;

public class JoinMessages extends Plugin implements Listener {
	
  private String loginString = "&a&l+ &7%s";
  private String logoutString = "&c&l- &7%s";
  
  public void onEnable() {
    getProxy().registerChannel("JoinMessage");
    getProxy().getPluginManager().registerCommand(this, new CommandServer());
    getProxy().getPluginManager().registerListener(this, this);
  }
  
  @EventHandler(priority = EventPriority.HIGHEST)
  @SuppressWarnings("deprecation")
  public void onServerConnect(ServerConnectEvent e) {
	  
	if (e.isCancelled())
		return;
	
    ServerInfo target = e.getTarget();
    ProxiedPlayer jp = e.getPlayer();
    
    if (CommandServer.justSwitched.contains(jp))
      return;
    
    String joinMessage = ChatColor.translateAlternateColorCodes('&',
    		                String.format(this.loginString, new Object[] { jp.getName() }));
    
    for (ProxiedPlayer p : target.getPlayers())
      p.sendMessage(joinMessage);
    
    jp.sendMessage(joinMessage);
  }
  
  @EventHandler
  @SuppressWarnings("deprecation")
  public void onServerDisconnect(ServerDisconnectEvent e) {
	  
    ServerInfo target = e.getTarget();
    ProxiedPlayer jp = e.getPlayer();
    
    if (CommandServer.justSwitched.contains(jp)) {
      CommandServer.justSwitched.remove(jp);
      return;
    }
    
    String leaveMessage = ChatColor.translateAlternateColorCodes('&',
    		                 String.format(this.logoutString, new Object[] { jp.getName() }));
    
    for (ProxiedPlayer p : target.getPlayers())
      p.sendMessage(leaveMessage);
  }
}