Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.delusive.oc;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Collection;
- import org.slf4j.Logger;
- import org.spongepowered.api.config.DefaultConfig;
- import org.spongepowered.api.entity.living.player.Player;
- import org.spongepowered.api.event.Listener;
- import org.spongepowered.api.event.Order;
- import org.spongepowered.api.event.game.state.GameStartedServerEvent;
- import org.spongepowered.api.event.message.MessageChannelEvent;
- import org.spongepowered.api.plugin.Plugin;
- import org.spongepowered.api.text.Text;
- import org.spongepowered.api.text.channel.MessageChannel;
- import com.google.inject.Inject;
- import ninja.leaping.configurate.ConfigurationOptions;
- import ninja.leaping.configurate.commented.CommentedConfigurationNode;
- import ninja.leaping.configurate.loader.ConfigurationLoader;
- @Plugin(id = "oldschoolchat", name = "OldschoolChat", version = "1.0")
- public class MainClass {
- @Inject
- Logger log;
- @Inject
- @DefaultConfig(sharedRoot = false)
- public ConfigurationLoader <CommentedConfigurationNode> localLoader;
- //config
- boolean isRangedChatEnabled;
- double messageRange;
- String globalSymbol;
- String rangedSymbol;
- @Listener(order=Order.POST)
- public void onChat(MessageChannelEvent.Chat e) {
- if(!isRangedChatEnabled) {
- return;
- }
- if(e.getCause().first(Player.class).isPresent()) {
- Player p = e.getCause().first(Player.class).get();
- Text.Builder b = Text.builder();
- if(e.getRawMessage().toPlain().charAt(0) == '!') {
- b.append(Text.of(globalSymbol));
- b.append(e.getMessage().getChildren().get(0)); //Prefix + username
- b.append(Text.of(e.getRawMessage().toPlain().substring(1).replaceAll("&", "ยง")));
- e.setMessage(b.build());
- return;
- }
- b.append(Text.of(rangedSymbol));
- b.append(e.getMessage());
- MessageChannel.fixed(getNearbyPlayers(p)).send(b.build());
- e.setCancelled(true);
- e.setMessageCancelled(true);
- }
- }
- public Collection<Player> getNearbyPlayers(Player p){
- Collection <Player> list = new ArrayList<>();
- for(Player currPlayer : p.getWorld().getPlayers()) {
- if(p.getPosition().distanceSquared(currPlayer.getPosition()) <= messageRange*messageRange) {
- list.add(currPlayer);
- }
- }
- return list;
- }
- @Listener
- public void onEnable(GameStartedServerEvent e) throws IOException {
- CommentedConfigurationNode conf = localLoader.load(ConfigurationOptions.defaults().setShouldCopyDefaults(true));
- this.isRangedChatEnabled = conf.getNode("config", "isRangedChatEnabled").getBoolean(true);
- conf.getNode("config", "isRangedChatEnabled").setComment("Should it work?");
- this.messageRange = conf.getNode("config", "messageRange").getDouble(100.0);
- conf.getNode("config", "messageRange").setComment("Local messages range");
- this.globalSymbol = conf.getNode("config", "globalSymbol").getString("[G]");
- conf.getNode("config", "globalSymbol").setComment("Prefix of Global message ( [G][Admin]Delusive: Hello everybody! )");
- this.rangedSymbol = conf.getNode("config", "rangedSymbol").getString("[L]");
- conf.getNode("config", "rangedSymbol").setComment("Prefix of Local message ( [L][Admin]Delusive: Only players near can see that message! )");
- localLoader.save(conf);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement