Skip to content

Commit

Permalink
Merge pull request #5 from peyang-Celeron/master
Browse files Browse the repository at this point in the history
Copy mode added.
  • Loading branch information
PeyaPeyaPeyang authored May 11, 2020
2 parents 7fdef76 + 4ddf02a commit 37a1b3c
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 7 deletions.
8 changes: 4 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ plugins {
id "net.minecraftforge.gradle.forge" version "2.0.2"
}
*/
version = "1.1"
version = "1.2"
group= "ml.peya.mc.PeyangRawChatViewer" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "PeyangRawChatViewer"
sourceCompatibility = 1.8
targetCompatibility = 1.8

minecraft {
version = "1.8.9-11.15.1.1722"
Expand Down Expand Up @@ -61,7 +63,6 @@ dependencies {

}


processResources
{
// this will ensure that this task is redone when the versions change.
Expand All @@ -86,8 +87,7 @@ processResources
apply plugin: 'java'

jar.baseName = 'PeyangRawChatViewer-MC1.8.x'
version = '1.1'

version = '1.2'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
33 changes: 31 additions & 2 deletions src/main/java/ml/peya/mc/PeyangRawChatViewer.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import ml.peya.mc.exception.*;
import net.minecraft.client.*;
import net.minecraft.crash.*;
import net.minecraft.event.*;
import net.minecraft.util.*;
import net.minecraftforge.client.*;
import net.minecraftforge.client.event.*;
Expand All @@ -13,7 +14,12 @@
import net.minecraftforge.fml.common.eventhandler.*;
import net.minecraftforge.fml.relauncher.*;

import javax.swing.text.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.util.*;
import java.util.logging.*;
import java.util.regex.*;

@Mod(modid = PeyangRawChatViewer.MOD_ID,
name = PeyangRawChatViewer.MOD_NAME,
Expand Down Expand Up @@ -43,6 +49,7 @@ public void preInit(FMLPreInitializationEvent e)
public void init(FMLInitializationEvent e)
{
ClientCommandHandler.instance.registerCommand(new ToggleCommands());
ClientCommandHandler.instance.registerCommand(new PeyangDraftCopyUrl());
logger = Logger.getLogger(MOD_ID);
MinecraftForge.EVENT_BUS.register(this);
}
Expand All @@ -61,8 +68,21 @@ public void chatReceive(ClientChatReceivedEvent e)
IChatComponent chatComponent = e.message;
//logger.info(e.message.getFormattedText());
logger.info(IChatComponent.Serializer.componentToJson(chatComponent));
String json = IChatComponent.Serializer.componentToJson(chatComponent).replace("§", "[Section]");
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(getRawPrefix() + EnumChatFormatting.WHITE + " " + json));
String json = IChatComponent.Serializer.componentToJson(chatComponent);
json = json.replace("§", "[Section]");
ChatComponentText response = new ChatComponentText(getRawPrefix() + EnumChatFormatting.WHITE + " " + json);
ChatStyle style = response.getChatStyle();

IChatComponent hoverTxt = new ChatComponentText(EnumChatFormatting.YELLOW + "Click to send !");
HoverEvent hoverEvt = new HoverEvent(HoverEvent.Action.SHOW_TEXT, hoverTxt);

ClickEvent clickEvt = new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/zzzpeyangdraftcopysandopenurl " + String.join(" ", splitByLength(json)));
style.setChatHoverEvent(hoverEvt);
style.setChatClickEvent(clickEvt);

response.setChatStyle(style);

Minecraft.getMinecraft().thePlayer.addChatMessage(response);
}

public static String getRawPrefix()
Expand All @@ -71,4 +91,13 @@ public static String getRawPrefix()
EnumChatFormatting.BLUE + "RAWCHAT" +
EnumChatFormatting.AQUA + "]";
}

public static ArrayList<String> splitByLength(String str)
{
Matcher matcher = Pattern.compile(".{1,30}").matcher(str);
ArrayList<String> response = new ArrayList<>();
while(matcher.find())
response.add(str.substring(matcher.start(), matcher.end()));
return response;
}
}
49 changes: 49 additions & 0 deletions src/main/java/ml/peya/mc/commands/PeyangDraftCopyUrl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package ml.peya.mc.commands;

import ml.peya.mc.*;
import net.minecraft.client.*;
import net.minecraft.command.*;
import net.minecraft.util.*;

import java.awt.*;
import java.awt.datatransfer.*;
import java.lang.reflect.*;
import java.util.*;
import java.util.regex.*;

public class PeyangDraftCopyUrl extends CommandBase
{
@Override
public String getCommandName()
{
return "zzzpeyangdraftcopysandopenurl";
}

@Override
public String getCommandUsage(ICommandSender iCommandSender)
{
return "zzzpeyangdraftcopysandopenurl <json>";
}

@Override
public void processCommand(ICommandSender sender, String[] args) throws CommandException
{
if (args.length == 0)
return;
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringBuilder json = new StringBuilder();
for(String value: args)
json.append(value);
StringSelection val = new StringSelection(json.toString());
clipboard.setContents(val, val);
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(PeyangRawChatViewer.getRawPrefix() + " " + EnumChatFormatting.GREEN + "Copied!"));
}

@Override
public int getRequiredPermissionLevel()
{
return 0;
}


}
2 changes: 1 addition & 1 deletion src/main/resources/mcmod.info
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"modid": "peyangrawchatviewer",
"name": "Peyang Raw Chat Viewer",
"description": " Raw Chat Viewer. /rawchat [on|off] for toggle RawView mode.",
"version": "1.1",
"version": "1.2",
"mcversion": "[1.8,)",
"url": "https://peya.ml/",
"updateUrl": "",
Expand Down

0 comments on commit 37a1b3c

Please sign in to comment.