section signs validation for the funny reason
This commit is contained in:
parent
b7ff56e28d
commit
dc6c159db3
3 changed files with 37 additions and 9 deletions
|
@ -25,8 +25,15 @@ public class ValidateCommand extends Command {
|
||||||
|
|
||||||
final String hash = fullArgs[0];
|
final String hash = fullArgs[0];
|
||||||
|
|
||||||
if (hash.equals(bot.hashing.getHash(context.splitInput[0], context.sender))) return Component.text("Valid hash").color(NamedTextColor.GREEN);
|
if (
|
||||||
else if (hash.equals(bot.hashing.getOwnerHash(context.splitInput[0], context.sender))) return Component.text("Valid OwnerHash").color(NamedTextColor.GREEN);
|
hash.equals(bot.hashing.getHash(context.splitInput[0], context.sender, true)) ||
|
||||||
|
hash.equals(bot.hashing.getHash(context.splitInput[0], context.sender, false))
|
||||||
|
) return Component.text("Valid hash").color(NamedTextColor.GREEN);
|
||||||
|
|
||||||
|
else if (
|
||||||
|
hash.equals(bot.hashing.getOwnerHash(context.splitInput[0], context.sender, true)) ||
|
||||||
|
hash.equals(bot.hashing.getOwnerHash(context.splitInput[0], context.sender, false))
|
||||||
|
) return Component.text("Valid OwnerHash").color(NamedTextColor.GREEN);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,13 +143,17 @@ public class CommandHandlerPlugin {
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (
|
||||||
command.trustLevel == TrustLevel.TRUSTED &&
|
command.trustLevel == TrustLevel.TRUSTED &&
|
||||||
!userHash.equals(bot.hashing.getHash(splitInput[0], context.sender)) &&
|
// mess?
|
||||||
!userHash.equals(bot.hashing.getOwnerHash(splitInput[0], context.sender))
|
!userHash.equals(bot.hashing.getHash(splitInput[0], context.sender, true)) &&
|
||||||
|
!userHash.equals(bot.hashing.getOwnerHash(splitInput[0], context.sender, true)) &&
|
||||||
|
!userHash.equals(bot.hashing.getHash(splitInput[0], context.sender, false)) &&
|
||||||
|
!userHash.equals(bot.hashing.getOwnerHash(splitInput[0], context.sender, false))
|
||||||
) return Component.text("Invalid hash").color(NamedTextColor.RED);
|
) return Component.text("Invalid hash").color(NamedTextColor.RED);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
command.trustLevel == TrustLevel.OWNER &&
|
command.trustLevel == TrustLevel.OWNER &&
|
||||||
!userHash.equals(bot.hashing.getOwnerHash(splitInput[0], context.sender))
|
!userHash.equals(bot.hashing.getOwnerHash(splitInput[0], context.sender, false)) &&
|
||||||
|
!userHash.equals(bot.hashing.getOwnerHash(splitInput[0], context.sender, true))
|
||||||
) return Component.text("Invalid OwnerHash").color(NamedTextColor.RED);
|
) return Component.text("Invalid OwnerHash").color(NamedTextColor.RED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||||
import land.chipmunk.chayapak.chomens_bot.data.chat.PlayerEntry;
|
import land.chipmunk.chayapak.chomens_bot.data.chat.PlayerEntry;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class HashingPlugin {
|
public class HashingPlugin {
|
||||||
private final Bot bot;
|
private final Bot bot;
|
||||||
|
@ -13,29 +14,45 @@ public class HashingPlugin {
|
||||||
this.bot = bot;
|
this.bot = bot;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHash (String prefix, PlayerEntry sender) {
|
public String getHash (String prefix, PlayerEntry sender, boolean sectionSigns) {
|
||||||
final long time = System.currentTimeMillis() / 5_000;
|
final long time = System.currentTimeMillis() / 5_000;
|
||||||
|
|
||||||
final String key = bot.config.keys.normalKey;
|
final String key = bot.config.keys.normalKey;
|
||||||
|
|
||||||
final String hashValue = sender.profile.getIdAsString() + prefix + time + key;
|
final String hashValue = sender.profile.getIdAsString() + prefix + time + key;
|
||||||
|
|
||||||
return Hashing.sha256()
|
final String hash = Hashing.sha256()
|
||||||
.hashString(hashValue, StandardCharsets.UTF_8)
|
.hashString(hashValue, StandardCharsets.UTF_8)
|
||||||
.toString()
|
.toString()
|
||||||
.substring(0, 16);
|
.substring(0, 16);
|
||||||
|
|
||||||
|
return sectionSigns ?
|
||||||
|
String.join("",
|
||||||
|
Arrays.stream(hash.split(""))
|
||||||
|
.map((letter) -> "§" + letter)
|
||||||
|
.toArray(String[]::new)
|
||||||
|
) :
|
||||||
|
hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getOwnerHash (String prefix, PlayerEntry sender) {
|
public String getOwnerHash (String prefix, PlayerEntry sender, boolean sectionSigns) {
|
||||||
final long time = System.currentTimeMillis() / 5_000;
|
final long time = System.currentTimeMillis() / 5_000;
|
||||||
|
|
||||||
final String key = bot.config.keys.ownerKey;
|
final String key = bot.config.keys.ownerKey;
|
||||||
|
|
||||||
final String value = sender.profile.getIdAsString() + prefix + time + key;
|
final String value = sender.profile.getIdAsString() + prefix + time + key;
|
||||||
|
|
||||||
return Hashing.sha256()
|
final String hash = Hashing.sha256()
|
||||||
.hashString(value, StandardCharsets.UTF_8)
|
.hashString(value, StandardCharsets.UTF_8)
|
||||||
.toString()
|
.toString()
|
||||||
.substring(0, 16);
|
.substring(0, 16);
|
||||||
|
|
||||||
|
return sectionSigns ?
|
||||||
|
String.join("",
|
||||||
|
Arrays.stream(hash.split(""))
|
||||||
|
.map((letter) -> "§" + letter)
|
||||||
|
.toArray(String[]::new)
|
||||||
|
) :
|
||||||
|
hash;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue