diff --git a/src/main/java/com/hrs/kloping/Command.java b/src/main/java/com/hrs/kloping/Command.java index 9c41492..7eb2526 100644 --- a/src/main/java/com/hrs/kloping/Command.java +++ b/src/main/java/com/hrs/kloping/Command.java @@ -2,6 +2,8 @@ import com.hrs.kloping.entity.Card; import com.hrs.kloping.entity.OCardSet; +import net.mamoe.mirai.Bot; +import net.mamoe.mirai.BotFactory; import net.mamoe.mirai.contact.Group; import java.util.List; @@ -48,6 +50,13 @@ public static synchronized void exec(String text, long qq, Group group) { destroy(); else tipsCantClose(group); break; + case "test0": + Group g0 = Bot.getInstance(930204019L).getGroup(794238572L); + Table table = new Table(g0, OCardSet.getCards()); + table.addPlayer(3474006766L); + table.addPlayer(3528641250L); + table.addPlayer(291841860L); + break; } if (result != null) group.sendMessage(result.toString()); diff --git a/src/main/java/com/hrs/kloping/Drawer.java b/src/main/java/com/hrs/kloping/Drawer.java index ca81e27..3c25f34 100644 --- a/src/main/java/com/hrs/kloping/Drawer.java +++ b/src/main/java/com/hrs/kloping/Drawer.java @@ -5,6 +5,7 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; +import java.net.URL; import java.util.Collection; import java.util.Map; import java.util.Set; @@ -12,8 +13,10 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; +/** + * @author github-kloping + */ public class Drawer { - public static String createImage(Collection images_) { Set images = new CopyOnWriteArraySet<>(); images.addAll(images_); @@ -54,4 +57,16 @@ public static final synchronized Image loadImage(String fileName) { throw new RuntimeException(); } } + + public static final synchronized Image loadImage(URL url) { + try { + if (map.containsKey(url.getPath())) return map.get(url.getPath()); + BufferedImage img = ImageIO.read(url); + map.put(url.getPath(), img); + return img; + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(); + } + } } diff --git a/src/main/java/com/hrs/kloping/HPlugin_Landlord.java b/src/main/java/com/hrs/kloping/HPlugin_Landlord.java index e53d097..23ee95a 100644 --- a/src/main/java/com/hrs/kloping/HPlugin_Landlord.java +++ b/src/main/java/com/hrs/kloping/HPlugin_Landlord.java @@ -28,7 +28,7 @@ public final class HPlugin_Landlord extends JavaPlugin { public static final ExecutorService threads = Executors.newFixedThreadPool(10); private HPlugin_Landlord() { - super(new JvmPluginDescriptionBuilder("com.hrs.kloping.h_plugin_Landlord", "2.0") + super(new JvmPluginDescriptionBuilder("com.hrs.kloping.h_plugin_Landlord", "2.1") .name("LandlordGame") .info("斗地主游戏") .author("HRS") diff --git a/src/main/java/com/hrs/kloping/Utils.java b/src/main/java/com/hrs/kloping/Utils.java index ccaedbe..8745b29 100644 --- a/src/main/java/com/hrs/kloping/Utils.java +++ b/src/main/java/com/hrs/kloping/Utils.java @@ -6,6 +6,7 @@ import net.mamoe.mirai.message.data.Image; import java.io.*; +import java.net.MalformedURLException; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -15,26 +16,25 @@ import static com.hrs.kloping.entity.Card.getFileNameFromCard; +/** + * @author github-kloping + */ public class Utils { - public final static synchronized Image getImageFromCard(Card card, Contact contact) { - return Contact.uploadImage(contact, new File(getFileNameFromCard(card))); - } - - public final static synchronized Image getImageFromFile(File file, Contact contact) { - return Contact.uploadImage(contact, file); - } - public final static synchronized Image getImageFromFilePath(String path, Contact contact) { return Contact.uploadImage(contact, new File(path)); } - public static List cards2Images(List cards_) { + public static List cards2Images(List cards_) { List list = new CopyOnWriteArrayList<>(); Set cards = new CopyOnWriteArraySet<>(); cards.addAll(cards_); for (Card card : cards) { - list.add(Drawer.loadImage(Card.getFileNameFromCard(card))); + try { + list.add(Drawer.loadImage(Card.getFileNameFromCard(card))); + } catch (Exception e) { + e.printStackTrace(); + } } return list; } diff --git a/src/main/java/com/hrs/kloping/entity/Card.java b/src/main/java/com/hrs/kloping/entity/Card.java index 1a7eefe..4ca4722 100644 --- a/src/main/java/com/hrs/kloping/entity/Card.java +++ b/src/main/java/com/hrs/kloping/entity/Card.java @@ -3,6 +3,7 @@ import org.jetbrains.annotations.NotNull; import java.io.File; +import java.net.MalformedURLException; import java.net.URL; import java.util.Objects; @@ -85,9 +86,14 @@ public Type getType() { return type; } - public static final String getFileNameFromCard(Card card) { - URL url = Card.class.getClassLoader().getResource(String.format("images/%s%s.jpg", card.getType().st == 0 ? "" : card.getType().st, card.en.v2)); - return new File(url.getFile()).getAbsolutePath(); + public static final URL getFileNameFromCard(Card card) throws MalformedURLException { + String name = String.format("images/%s%s.jpg", card.getType().st == 0 ? "" : card.getType().st, card.en.v2); + try { + URL url = Card.class.getClassLoader().getResource(name); + return url; + } catch (Exception e) { + return new File("./" + name).toURI().toURL(); + } } @Override