-
Notifications
You must be signed in to change notification settings - Fork 46
Closed
Description
说明
注意到本项目有多处借鉴了 MiraiGo 的代码,现就此向贵方提出如下要求:
- 例1:
LagrangeGo/utils/proto/wrapper.go
Lines 1 to 32 in abba4c7
package proto import ( "reflect" "google.golang.org/protobuf/types/known/anypb" "github.com/RomiChan/protobuf/proto" ) // TODO: move to a new package const debug = false type Message = any func Marshal(m Message) ([]byte, error) { b, err := proto.Marshal(m) if err != nil { return b, err } if debug { t := reflect.TypeOf(m).Elem() n := reflect.New(t) err = Unmarshal(b, n.Interface()) if err != nil { panic(err) } if reflect.DeepEqual(m, n) { panic("not equal") } } return b, err
中,添加package proto // from https://github.com/Mrs4s/MiraiGo/blob/master/internal/proto/wrapper.go import ( "reflect" "google.golang.org/protobuf/types/known/anypb" "github.com/RomiChan/protobuf/proto" ) // TODO: move to a new package const debug = false ...
- 例2:
Lines 1 to 32 in abba4c7
package client import ( "reflect" "runtime/debug" "sync" "github.com/LagrangeDev/LagrangeGo/event" "github.com/LagrangeDev/LagrangeGo/message" "github.com/LagrangeDev/LagrangeGo/utils" ) var eventLogger = utils.GetLogger("event") // protected all EventHandle, since write is very rare, use // only one lock to save memory var eventMu sync.RWMutex type EventHandle[T any] struct { // QQClient? handlers []func(client *QQClient, event T) } func (handle *EventHandle[T]) Subscribe(handler func(client *QQClient, event T)) { eventMu.Lock() defer eventMu.Unlock() // shrink the slice newHandlers := make([]func(client *QQClient, event T), len(handle.handlers)+1) copy(newHandlers, handle.handlers) newHandlers[len(handle.handlers)] = handler handle.handlers = newHandlers
中,添加package client // from https://github.com/Mrs4s/MiraiGo/blob/master/client/events.go import ( "reflect" "runtime/debug" "sync" "github.com/LagrangeDev/LagrangeGo/event" "github.com/LagrangeDev/LagrangeGo/message" "github.com/LagrangeDev/LagrangeGo/utils" ) var eventLogger = utils.GetLogger("event")
- 如果遇到一个文件中部分借鉴的情况,请分别在相应位置注明。
- 由于 MiraiGo 所使用的 GNU Affero General Public License v3.0 协议的传染性,贵方需要将此仓库协议从 GPLv3 变更为 AGPLv3。
其它解决方式
贵方也可选择完全删除仓库中与 MiraiGo 相同或相似的代码,这样便可不必执行上述要求。
TheSnowfield and fumiama
Metadata
Metadata
Assignees
Labels
No labels