package de.maxgb.minecraft.second_screen.actions; import net.minecraftforge.common.MinecraftForge; 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.Logger; import de.maxgb.minecraft.second_screen.util.User; /** * Action which can show a chat message ingame * @author Max * */ public class ChatMessageAction implements IAction { private static final String TAG = "ChatMessage"; private static final String PERMISSION = "send_chat_message"; @Override public void doAction(JSONObject param, User user, ActionResultListener listener) { if (!param.has("msg")) { Logger.w(TAG, "Params did not include message"); JSONObject result = new JSONObject(); result.put("success", 0); result.put("error", "Params did not include message"); listener.onActionResult(PROTOKOLL.A_CHAT_MSG, result); return; } if (!user.isAllowedTo(PERMISSION, true)) { Logger.w(TAG, "User " + user.username + " is not allowed to execute this command"); JSONObject result = new JSONObject(); result.put("success", 0); result.put("allowed", false); listener.onActionResult(PROTOKOLL.A_CHAT_MSG, result); return; } String msg = param.getString("msg"); Helper.sendChatMessage("[MSS] <" + user.username + "> " + msg); MinecraftForge.EVENT_BUS.post(new RemoteChatMessageEvent(user.username, msg)); JSONObject result = new JSONObject(); result.put("success", 1); result.put("allowed", true); listener.onActionResult(PROTOKOLL.A_CHAT_MSG, result); return; } }