Remove "Smart" Quotes per default
This commit is contained in:
parent
8d1ec9f51d
commit
59ad607b14
@ -73,6 +73,12 @@ public class MCommand
|
|||||||
public boolean isUsingTokenizer() { return this.usingTokenizer; }
|
public boolean isUsingTokenizer() { return this.usingTokenizer; }
|
||||||
public void setUsingTokenizer(boolean usingTokenizer) { this.usingTokenizer = usingTokenizer; }
|
public void setUsingTokenizer(boolean usingTokenizer) { this.usingTokenizer = usingTokenizer; }
|
||||||
|
|
||||||
|
// FIELD: usingSmartQuotesRemoval
|
||||||
|
// Are "smart" quotes replaced with normal characters?
|
||||||
|
protected boolean usingSmartQuotesRemoval;
|
||||||
|
public boolean isUsingSmartQuotesRemoval() { return this.usingSmartQuotesRemoval; }
|
||||||
|
public void setUsingSmartQuotesRemoval(boolean usingSmartQuotesRemoval) { this.usingSmartQuotesRemoval = usingSmartQuotesRemoval; }
|
||||||
|
|
||||||
// FIELD: requirements
|
// FIELD: requirements
|
||||||
// All these requirements must be met for the command to be executable;
|
// All these requirements must be met for the command to be executable;
|
||||||
protected List<Req> requirements;
|
protected List<Req> requirements;
|
||||||
@ -184,6 +190,7 @@ public class MCommand
|
|||||||
|
|
||||||
this.errorOnToManyArgs = true;
|
this.errorOnToManyArgs = true;
|
||||||
this.usingTokenizer = true;
|
this.usingTokenizer = true;
|
||||||
|
this.usingSmartQuotesRemoval = true;
|
||||||
|
|
||||||
this.desc = null;
|
this.desc = null;
|
||||||
this.descPermission = null;
|
this.descPermission = null;
|
||||||
|
@ -82,6 +82,16 @@ public class MCoreBukkitCommand extends Command
|
|||||||
argList = new ArrayList<String>(Arrays.asList(args));
|
argList = new ArrayList<String>(Arrays.asList(args));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.mcommand.isUsingSmartQuotesRemoval())
|
||||||
|
{
|
||||||
|
List<String> oldArgList = argList;
|
||||||
|
argList = new ArrayList<String>();
|
||||||
|
for (String arg : oldArgList)
|
||||||
|
{
|
||||||
|
argList.add(Txt.removeSmartQuotes(arg));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.mcommand.execute(sender, argList);
|
this.mcommand.execute(sender, argList);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -489,6 +489,42 @@ public class Txt
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// "SMART" QUOTES
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// The quite stupid "Smart quotes" design idea means replacing normal characters with mutated UTF-8 alternatives.
|
||||||
|
// The normal characters look good in Minecraft.
|
||||||
|
// The UFT-8 "smart" alternatives look quite bad.
|
||||||
|
// http://www.fileformat.info/info/unicode/block/general_punctuation/list.htm
|
||||||
|
|
||||||
|
public static String removeSmartQuotes(String string)
|
||||||
|
{
|
||||||
|
if (string == null) return null;
|
||||||
|
|
||||||
|
// LEFT SINGLE QUOTATION MARK
|
||||||
|
string = string.replace("\u2018", "'");
|
||||||
|
|
||||||
|
// RIGHT SINGLE QUOTATION MARK
|
||||||
|
string = string.replace("\u2019", "'");
|
||||||
|
|
||||||
|
// LEFT DOUBLE QUOTATION MARK
|
||||||
|
string = string.replace("\u201C", "\"");
|
||||||
|
|
||||||
|
// RIGHT DOUBLE QUOTATION MARK
|
||||||
|
string = string.replace("\u201D", "\"");
|
||||||
|
|
||||||
|
// ONE DOT LEADER
|
||||||
|
string = string.replace("\u2024", ".");
|
||||||
|
|
||||||
|
// TWO DOT LEADER
|
||||||
|
string = string.replace("\u2025", "..");
|
||||||
|
|
||||||
|
// HORIZONTAL ELLIPSIS
|
||||||
|
string = string.replace("\u2026", "...");
|
||||||
|
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// String comparison
|
// String comparison
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
Loading…
Reference in New Issue
Block a user