package de.maxgb.minecraft.second_screen.actions; import java.util.ArrayList; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import org.json.JSONArray; import org.json.JSONObject; import de.maxgb.minecraft.second_screen.actions.ActionManager.ActionResultListener; import de.maxgb.minecraft.second_screen.actions.ActionManager.IAction; import de.maxgb.minecraft.second_screen.info_listener.ChatListener.RemoteChatMessageEvent; import de.maxgb.minecraft.second_screen.shared.PROTOKOLL; import de.maxgb.minecraft.second_screen.util.Helper; import de.maxgb.minecraft.second_screen.util.User; public class GetLastChatAction implements IAction{ private ArrayList<JSONObject> messages; public GetLastChatAction(){ messages=new ArrayList<JSONObject>(); MinecraftForge.EVENT_BUS.register(this); } @Override public void doAction(JSONObject param, User user, ActionResultListener listener) { JSONArray msgs=new JSONArray(); for(JSONObject j:messages){ msgs.put(j); } listener.onActionResult(PROTOKOLL.A_GET_CHAT, new JSONObject().put("messages", msgs).put("success", 1) ); } private void addMessage(String message,String username){ JSONObject msg = new JSONObject(); msg.put("sender", username); msg.put("msg", message); msg.put("time", Helper.getCurrentTimeString()); if(messages.size()>50){ messages.subList(0, 10).clear(); } messages.add(msg); } @SubscribeEvent public void onChatMessage(ServerChatEvent e){ addMessage(e.message,e.username); } @SubscribeEvent public void onRemoteMessage(RemoteChatMessageEvent e){ addMessage(e.msg,"mss~"+e.username); } }