Skip to content

Commit 4ddf02a

Browse files
Copie mode added.
1 parent 4e16aa8 commit 4ddf02a

File tree

4 files changed

+85
-7
lines changed

4 files changed

+85
-7
lines changed

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ plugins {
1919
id "net.minecraftforge.gradle.forge" version "2.0.2"
2020
}
2121
*/
22-
version = "1.1"
22+
version = "1.2"
2323
group= "ml.peya.mc.PeyangRawChatViewer" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
2424
archivesBaseName = "PeyangRawChatViewer"
25+
sourceCompatibility = 1.8
26+
targetCompatibility = 1.8
2527

2628
minecraft {
2729
version = "1.8.9-11.15.1.1722"
@@ -61,7 +63,6 @@ dependencies {
6163

6264
}
6365

64-
6566
processResources
6667
{
6768
// this will ensure that this task is redone when the versions change.
@@ -86,8 +87,7 @@ processResources
8687
apply plugin: 'java'
8788

8889
jar.baseName = 'PeyangRawChatViewer-MC1.8.x'
89-
version = '1.1'
90-
90+
version = '1.2'
9191
dependencies {
9292
compile fileTree(dir: 'libs', include: ['*.jar'])
9393
}

src/main/java/ml/peya/mc/PeyangRawChatViewer.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import ml.peya.mc.exception.*;
55
import net.minecraft.client.*;
66
import net.minecraft.crash.*;
7+
import net.minecraft.event.*;
78
import net.minecraft.util.*;
89
import net.minecraftforge.client.*;
910
import net.minecraftforge.client.event.*;
@@ -13,7 +14,12 @@
1314
import net.minecraftforge.fml.common.eventhandler.*;
1415
import net.minecraftforge.fml.relauncher.*;
1516

17+
import javax.swing.text.*;
18+
import java.awt.*;
19+
import java.awt.datatransfer.*;
20+
import java.util.*;
1621
import java.util.logging.*;
22+
import java.util.regex.*;
1723

1824
@Mod(modid = PeyangRawChatViewer.MOD_ID,
1925
name = PeyangRawChatViewer.MOD_NAME,
@@ -43,6 +49,7 @@ public void preInit(FMLPreInitializationEvent e)
4349
public void init(FMLInitializationEvent e)
4450
{
4551
ClientCommandHandler.instance.registerCommand(new ToggleCommands());
52+
ClientCommandHandler.instance.registerCommand(new PeyangDraftCopyUrl());
4653
logger = Logger.getLogger(MOD_ID);
4754
MinecraftForge.EVENT_BUS.register(this);
4855
}
@@ -61,8 +68,21 @@ public void chatReceive(ClientChatReceivedEvent e)
6168
IChatComponent chatComponent = e.message;
6269
//logger.info(e.message.getFormattedText());
6370
logger.info(IChatComponent.Serializer.componentToJson(chatComponent));
64-
String json = IChatComponent.Serializer.componentToJson(chatComponent).replace("§", "[Section]");
65-
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(getRawPrefix() + EnumChatFormatting.WHITE + " " + json));
71+
String json = IChatComponent.Serializer.componentToJson(chatComponent);
72+
json = json.replace("§", "[Section]");
73+
ChatComponentText response = new ChatComponentText(getRawPrefix() + EnumChatFormatting.WHITE + " " + json);
74+
ChatStyle style = response.getChatStyle();
75+
76+
IChatComponent hoverTxt = new ChatComponentText(EnumChatFormatting.YELLOW + "Click to send !");
77+
HoverEvent hoverEvt = new HoverEvent(HoverEvent.Action.SHOW_TEXT, hoverTxt);
78+
79+
ClickEvent clickEvt = new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/zzzpeyangdraftcopysandopenurl " + String.join(" ", splitByLength(json)));
80+
style.setChatHoverEvent(hoverEvt);
81+
style.setChatClickEvent(clickEvt);
82+
83+
response.setChatStyle(style);
84+
85+
Minecraft.getMinecraft().thePlayer.addChatMessage(response);
6686
}
6787

6888
public static String getRawPrefix()
@@ -71,4 +91,13 @@ public static String getRawPrefix()
7191
EnumChatFormatting.BLUE + "RAWCHAT" +
7292
EnumChatFormatting.AQUA + "]";
7393
}
94+
95+
public static ArrayList<String> splitByLength(String str)
96+
{
97+
Matcher matcher = Pattern.compile(".{1,30}").matcher(str);
98+
ArrayList<String> response = new ArrayList<>();
99+
while(matcher.find())
100+
response.add(str.substring(matcher.start(), matcher.end()));
101+
return response;
102+
}
74103
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package ml.peya.mc.commands;
2+
3+
import ml.peya.mc.*;
4+
import net.minecraft.client.*;
5+
import net.minecraft.command.*;
6+
import net.minecraft.util.*;
7+
8+
import java.awt.*;
9+
import java.awt.datatransfer.*;
10+
import java.lang.reflect.*;
11+
import java.util.*;
12+
import java.util.regex.*;
13+
14+
public class PeyangDraftCopyUrl extends CommandBase
15+
{
16+
@Override
17+
public String getCommandName()
18+
{
19+
return "zzzpeyangdraftcopysandopenurl";
20+
}
21+
22+
@Override
23+
public String getCommandUsage(ICommandSender iCommandSender)
24+
{
25+
return "zzzpeyangdraftcopysandopenurl <json>";
26+
}
27+
28+
@Override
29+
public void processCommand(ICommandSender sender, String[] args) throws CommandException
30+
{
31+
if (args.length == 0)
32+
return;
33+
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
34+
StringBuilder json = new StringBuilder();
35+
for(String value: args)
36+
json.append(value);
37+
StringSelection val = new StringSelection(json.toString());
38+
clipboard.setContents(val, val);
39+
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(PeyangRawChatViewer.getRawPrefix() + " " + EnumChatFormatting.GREEN + "Copied!"));
40+
}
41+
42+
@Override
43+
public int getRequiredPermissionLevel()
44+
{
45+
return 0;
46+
}
47+
48+
49+
}

src/main/resources/mcmod.info

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"modid": "peyangrawchatviewer",
44
"name": "Peyang Raw Chat Viewer",
55
"description": " Raw Chat Viewer. /rawchat [on|off] for toggle RawView mode.",
6-
"version": "1.1",
6+
"version": "1.2",
77
"mcversion": "[1.8,)",
88
"url": "https://peya.ml/",
99
"updateUrl": "",

0 commit comments

Comments
 (0)