Skip to content

Commit

Permalink
Merge pull request #6424 from kevlahnota/master2
Browse files Browse the repository at this point in the history
fix manifest entries, update autoupdater
  • Loading branch information
kevlahnota authored Oct 25, 2024
2 parents 2585ad1 + e9aed24 commit bd3bf82
Show file tree
Hide file tree
Showing 50 changed files with 1,121 additions and 545 deletions.
2 changes: 1 addition & 1 deletion forge-ai/src/main/java/forge/ai/ComputerUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -1626,7 +1626,7 @@ public static boolean hasAFogEffect(final Player defender, final Player ai, bool
for (final Card c : all) {
// check if card is at least available to be played
// further improvements might consider if AI has options to steal the spell by making it playable first
if (c.getZone().getPlayer() != null && c.getZone().getPlayer() != defender && c.mayPlay(defender).isEmpty()) {
if (c.getZone() != null && c.getZone().getPlayer() != null && c.getZone().getPlayer() != defender && c.mayPlay(defender).isEmpty()) {
continue;
}
for (final SpellAbility sa : c.getSpellAbilities()) {
Expand Down
3 changes: 3 additions & 0 deletions forge-ai/src/main/java/forge/ai/CreatureEvaluator.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ public int evaluateCreature(final Card c) {
return evaluateCreature(c, true, true);
}
public int evaluateCreature(final Card c, final boolean considerPT, final boolean considerCMC) {
//Card shouldn't be null and AI shouldn't crash since this is just score
if (c == null)
return 0;
int value = 80;
if (!c.isToken()) {
value += addValue(20, "non-token"); // tokens should be worth less than actual cards
Expand Down
16 changes: 16 additions & 0 deletions forge-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,22 @@
<artifactId>commons-lang3</artifactId>
<version>3.17.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.12.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.apptasticsoftware</groupId>
<artifactId>rssreader</artifactId>
<version>3.8.2</version>
</dependency>
</dependencies>

</project>
76 changes: 76 additions & 0 deletions forge-core/src/main/java/forge/util/RSSReader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package forge.util;

import com.apptasticsoftware.rssreader.Item;
import com.apptasticsoftware.rssreader.RssReader;
import org.apache.commons.text.StringEscapeUtils;

import java.io.InputStream;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.List;

public class RSSReader {
public static String getCommitLog(String commitsAtom, Date buildDateOriginal, Date maxDate) {
String message = "";
SimpleDateFormat simpleDate = TextUtil.getSimpleDate();
try {
RssReader reader = new RssReader();
URL url = new URL(commitsAtom);
InputStream inputStream = url.openStream();
List<Item> items = reader.read(inputStream).toList();
StringBuilder logs = new StringBuilder();
int c = 0;
for (Item i : items) {
if (i.getTitle().isEmpty())
continue;
String title = TextUtil.stripNonValidXMLCharacters(i.getTitle().get());
if (title.contains("Merge"))
continue;
ZonedDateTime zonedDateTime = i.getPubDateZonedDateTime().isPresent() ? i.getPubDateZonedDateTime().get() : null;
if (zonedDateTime == null)
continue;
Date feedDate = Date.from(zonedDateTime.toInstant());
if (buildDateOriginal != null && feedDate.before(buildDateOriginal))
continue;
if (maxDate != null && feedDate.after(maxDate))
continue;
logs.append(simpleDate.format(feedDate)).append(" | ").append(StringEscapeUtils.unescapeXml(title).replace("\n", "").replace(" ", "")).append("\n\n");
if (c >= 15)
break;
c++;
}
if (logs.length() > 0)
message += ("\n\nLatest Changes:\n\n" + logs);
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return message;
}
public static String getLatestReleaseTag(String releaseAtom) {
String tag = "";
try {
RssReader reader = new RssReader();
URL url = new URL(releaseAtom);
InputStream inputStream = url.openStream();
List<Item> items = reader.read(inputStream).toList();
for (Item i : items) {
if (i.getLink().isPresent()) {
try {
String val = i.getLink().get();
tag = val.substring(val.lastIndexOf("forge"));
break;
} catch (Exception e) {
e.printStackTrace();
}
}
}
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return tag;
}
}
92 changes: 90 additions & 2 deletions forge-core/src/main/java/forge/util/TextUtil.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
package forge.util;

import java.io.File;
import java.text.DecimalFormat;
import java.text.Normalizer;
import java.text.SimpleDateFormat;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TimeZone;

import forge.item.IPaperCard;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.text.StringEscapeUtils;

import com.google.common.collect.ImmutableSortedMap;

Expand All @@ -21,6 +28,8 @@
*
*/
public class TextUtil {
private static final StringBuilder changes = new StringBuilder();
private static SimpleDateFormat simpleDate;

static ImmutableSortedMap<Integer,String> romanMap = ImmutableSortedMap.<Integer,String>naturalOrder()
.put(1000, "M").put(900, "CM")
Expand Down Expand Up @@ -313,8 +322,8 @@ public static String fastReplace( String str, String target, String replacement
return sb.toString();
}
//Convert to Mana String
public static String toManaString(String ManaProduced){
if (ManaProduced == "mana"|| ManaProduced.contains("Combo")|| ManaProduced.contains("Any"))
public static String toManaString(String ManaProduced) {
if ("mana".equals(ManaProduced) || ManaProduced.contains("Combo")|| ManaProduced.contains("Any"))
return "mana";//fix manamorphose stack description and probably others..
return "{"+TextUtil.fastReplace(ManaProduced," ","}{")+"}";
}
Expand Down Expand Up @@ -363,4 +372,83 @@ public static String moveArticleToEnd(String str) {
}
return str;
}
/*
* Strip non valid XML Characters
*/
public static String stripNonValidXMLCharacters(String in) {
StringBuffer out = new StringBuffer();
char current;

if (in == null || ("".equals(in))) {
return "";
}
for (int i = 0; i < in.length(); i++) {
current = in.charAt(i);
if ((current == 0x9) || (current == 0xA) || (current == 0xD)
|| ((current >= 0x20) && (current <= 0xD7FF))
|| ((current >= 0xE000) && (current <= 0xFFFD))
|| ((current >= 0x10000) && (current <= 0x10FFFF))) {
out.append(current);
}
}
return out.toString();
}
public static SimpleDateFormat getSimpleDate() {
if (simpleDate == null)
simpleDate = new SimpleDateFormat("E, MMM dd, yyyy - hh:mm:ss a");
return simpleDate;
}
//format changelog
public static String getFormattedChangelog(File changelog, String defaultLog) {
if (!changelog.exists())
return defaultLog;
if (changes == null || changes.toString().isEmpty()) {
try {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat original = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat formatted = getSimpleDate();
String offset = " GMT " + OffsetDateTime.now().getOffset();
List<String> toformat = FileUtil.readAllLines(changelog, false);
boolean skip = false;
int count = 0;
for (String line : toformat) {
if (line.isEmpty() || line.startsWith("#") || line.length() < 4)
continue;
if (line.contains("**Merge")) {
skip = true;
continue;
}
if (line.startsWith("[")) {
if (skip) {
skip = false;
continue;
}
count++;
String datestring = line.substring(line.lastIndexOf(" *")+1).replace("*", "");
try {
original.setTimeZone(TimeZone.getTimeZone("UTC"));
Date toDate = original.parse(datestring);
calendar.setTime(toDate);
formatted.setTimeZone(TimeZone.getDefault());
changes.append("\n(").append(formatted.format(calendar.getTime())).append(offset).append(")\n\n");
} catch (Exception e2) {
changes.append("\n(").append(datestring).append(")\n\n");
}
if (count > 20)
break;
} else {
if (skip)
continue;
if (line.startsWith(" * "))
changes.append("\n").append(StringEscapeUtils.unescapeXml(line));
else
changes.append(StringEscapeUtils.unescapeXml(line));
}
}
} catch (Exception e) {
return defaultLog;
}
}
return changes.toString();
}
}
16 changes: 0 additions & 16 deletions forge-gui-android/assets/shaders/grayscale.frag

This file was deleted.

14 changes: 0 additions & 14 deletions forge-gui-android/assets/shaders/grayscale.vert

This file was deleted.

40 changes: 0 additions & 40 deletions forge-gui-android/assets/shaders/outline.frag

This file was deleted.

16 changes: 0 additions & 16 deletions forge-gui-android/assets/shaders/outline.vert

This file was deleted.

26 changes: 0 additions & 26 deletions forge-gui-android/assets/shaders/underwater.frag

This file was deleted.

Loading

0 comments on commit bd3bf82

Please sign in to comment.