mirror of
				https://github.com/LamGC/oracle-manager.git
				synced 2025-11-04 02:26:56 +00:00 
			
		
		
		
	refactor: 调整 refCode 的生成方式以防止 Key 发生碰撞.
防止 Key 发生碰撞, 使用循环检查 refCode 是否已经缓存.
This commit is contained in:
		@ -245,7 +245,10 @@ private val callbackCache: Cache<String, InlineKeyboardCallback> = CacheBuilder.
 | 
			
		||||
    .build()
 | 
			
		||||
 | 
			
		||||
fun InlineKeyboardButtonBuilder.callbackData(callback: InlineKeyboardCallback): InlineKeyboardButtonBuilder {
 | 
			
		||||
    val cacheReferenceCode = ThreadLocalRandom.current().randomString(32)
 | 
			
		||||
    var cacheReferenceCode: String
 | 
			
		||||
    do {
 | 
			
		||||
        cacheReferenceCode = Random().randomString(32)
 | 
			
		||||
    } while (callbackCache.getIfPresent(cacheReferenceCode) != null)
 | 
			
		||||
    callbackCache.put(cacheReferenceCode, callback)
 | 
			
		||||
    callbackData("{\"rcode\":\"$cacheReferenceCode\"}")
 | 
			
		||||
    return this
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user